"use strict"; function _createForOfIteratorHelper(o) { if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) { var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var it, normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } (function () { "use strict"; var ramCtrl = /*#__PURE__*/function () { function ramCtrl(constant, $scope, $translate, ProcessService, $compile, $timeout, $mdDialog, $sce, $mdMedia, PhoneNumberFormatter) { _classCallCheck(this, ramCtrl); this.ProcessService = ProcessService; this.imgPath = constant.imgPath; this.$scope = $scope; this.$translate = $translate; this.$mdDialog = $mdDialog; this.$compile = $compile; this.$sce = $sce; this.$timeout = $timeout; this.$mdMedia = $mdMedia; this.phoneNumberFormatter = PhoneNumberFormatter; this.isLoadingMap = true; this.listNannyGrid = []; this.listNanny = []; this.homeInfo = {}; this.isLoading = true; this.enablePolygonFlag = false; this.targetAddress = null; this.targetAddress = {}; this.addNanny = PCK_GLOBAL_VARIABLES.base_url_bo + "pck_ram.display_add_ami?p_light=0&p_type_view=1"; this.isBackOffice = parseInt(PCK_GLOBAL_VARIABLES.isBackOffice); this.tagetLabel = this.$translate.instant('RGPD_COL3'); this.targetData = []; this.target = {}; this.listNannyGrid = { data: [], count: 0 }; // Grid Objects this.options = { rowSelection: true, multiSelect: true, autoSelect: true, decapitate: false, largeEditDialog: false, boundaryLinks: true, limitSelect: true, pageSelect: true }; this.selected = []; this.limitOptions = [5, 10, 15, { label: 'ALL', value: this.listNannyGrid.data.length }]; this.gridColumns = { FIRST_NAME: { show: true, isJsonData: true, canHide: true, gridKey: "FIRST_NAME", gridName: 'FIRST_NAME' }, LAST_NAME: { show: true, isJsonData: true, canHide: true, gridKey: "LAST_NAME", gridName: 'LAST_NAME' }, TELEPHONE: { show: false, isJsonData: true, canHide: true, gridKey: "TELEPHONE", gridName: 'LANDLINE' }, PORTABLE: { show: false, isJsonData: true, canHide: true, gridKey: "PORTABLE", gridName: 'MOBILE' }, NUMERO: { show: true, isJsonData: false, canHide: false, gridKey: "NUMERO", gridName: 'ADDRESS_COMP' }, ADDRESS_COMP: { show: true, isJsonData: true, canHide: false, gridKey: "ADDRESS_COMP", gridName: 'ADDRESS_COMP' }, BTQ: { show: true, isJsonData: false, canHide: false, gridKey: "BTQ", gridName: 'PERS_CONTACT_INFO_BTQ' }, NOM_VOIE: { show: false, isJsonData: true, canHide: false, gridKey: "NOM_VOIE", gridName: 'PERS_CONTACT_INFO_STREET' }, CODE_POSTAL: { show: true, isJsonData: false, canHide: false, gridKey: "CODE_POSTAL", gridName: 'PERS_CONTACT_INFO_ZIPCODE' }, VILLE: { show: false, isJsonData: true, canHide: true, gridKey: "VILLE", gridName: 'CITY' }, distanceKM: { show: true, isJsonData: true, canHide: true, gridKey: "distanceKM", gridName: 'DISTANCE_HOUSE' }, footTime: { show: true, isJsonData: true, canHide: true, gridKey: "footTime", gridName: 'TRAVEL_FOOT_TIME' }, ACTIONS: { show: true, isJsonData: false, canHide: true, gridKey: "ACTIONS", gridName: 'ACTIONS' } }; this.query = { order: 'distanceKM', limit: 5, page: 1, filter: "" }; this.queryAllData = { order: 'FIRST_NAME DESC', limit: 999999999, page: 1, filter: "" }; this.getData(); } _createClass(ramCtrl, [{ key: "formatPhoneNumber", value: function formatPhoneNumber(phoneNumber) { return this.phoneNumberFormatter.formatPhoneNumber(phoneNumber); } }, { key: "changeAddressComponent", value: function changeAddressComponent(item) { var self = this; if (item.id === -1) { self.targetAddress = {}; } else { //self.target.selectedOptionValue self.targetAddress = {}; self.$timeout(function () { self.targetAddress = { "streetType": { "stringFilter": item.obj.streetTypeDescription === null ? " " : item.obj.streetTypeDescription, "obj": { "ID": -1, "DESCRIPTION": item.obj.streetTypeDescription === null ? " " : item.obj.streetTypeDescription } }, "street": { "stringFilter": item.obj.street === null ? " " : item.obj.street, "obj": { "ID": -1, "name": item.obj.street === null ? " " : item.obj.street } }, "zipCode": { "stringFilter": item.obj.zipcode === null ? " " : item.obj.zipcode, "obj": { "Cities": [], "ID": -1, "ZipCode": item.obj.zipcode === null ? " " : item.obj.zipcode } }, "btq": { "stringFilter": item.obj.btqDescription === null ? " " : item.obj.btqDescription, "obj": { "ID": -1, "DESCRIPTION": item.obj.btqDescription === null ? " " : item.obj.btqDescription } }, "city": { "stringFilter": item.obj.city === null ? " " : item.obj.city, "obj": { "IdCity": -1, "CityName": item.obj.city === null ? " " : item.obj.city } }, "number": item.obj.numero === null ? " " : item.obj.numero, "addressDetails": "" }; }, 100); } } }, { key: "getData", value: function getData() { var changeAddress = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; var isUpdateDataOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; var _self = this; if (_self.isBackOffice) { if (changeAddress) { _self.clear(); _self.getRamInfoGrid(_self.queryAllData, false, false, isUpdateDataOnly); //_self.getRamInfoGrid(_self.query, true); } else { _self.getNannyAddress(isUpdateDataOnly); } } else { _self.getRamInfoGrid(_self.queryAllData, false); //_self.getRamInfoGrid(_self.query, true) } } }, { key: "getNannyAddress", value: function getNannyAddress(isUpdateDataOnly) { var self = this; var hasError = false; var data; self.ProcessService.getNannyAddress().then(function (response) { data = response.data.DATA; })["catch"](function (error) {})["finally"](function () { self.muni = data.Municipality[0]; self.targetData = [{ id: 0 + self.muni.id, description: self.muni.description, obj: self.muni }]; var _iterator = _createForOfIteratorHelper(data.Ram), _step; try { for (_iterator.s(); !(_step = _iterator.n()).done;) { var ram = _step.value; self.targetData.push({ id: 1 + ram.id, description: ram.description, obj: ram }); } } catch (err) { _iterator.e(err); } finally { _iterator.f(); } self.targetData.push({ id: -1, description: self.$translate.instant('ADDRESS_COMP'), obj: {} }); self.target['selectedOptionValue'] = self.targetData[0]; self.changeAddressComponent(self.targetData[0]); self.getRamInfoGrid(self.queryAllData, false, false, isUpdateDataOnly); //self.getRamInfoGrid(self.query, true); }); } }, { key: "getRamInfoGrid", value: function getRamInfoGrid() { var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.query; var grid = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; var isCustom = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; var isUpdateDataOnly = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; var self = this; var hasError = false; var data; if (grid) { self.isLoading = true; if (!isUpdateDataOnly) { self.listNannyGrid = { data: [], count: 0 }; } } self.$scope.promise = self.ProcessService.getRamInfoGrid(payload).then(function (response) { data = response.data.DATA; })["catch"](function (error) { console.error(error); hasError = true; })["finally"](function () { if (isUpdateDataOnly) { self.tempData = self.listNannyGrid; } else { if (grid) { self.listNannyGrid = data; } else { self.listNanny = data; } } if (self.isBackOffice) { self.dataConstructor([], grid, isCustom, isUpdateDataOnly, data); } else { self.getFamilyAddress(grid); } }); /* self.isLoadingMap = false; self.isLoading = false; */ } }, { key: "updateNannyData", value: function updateNannyData(selectedList, NewSelectedList) { var _self = this; var tempList = { data: [], count: 0 }; var _iterator2 = _createForOfIteratorHelper(NewSelectedList.data), _step2; try { for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { var nanny = _step2.value; var _iterator3 = _createForOfIteratorHelper(selectedList.data), _step3; try { for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) { var selectedNanny = _step3.value; if (nanny.ID_AMI === selectedNanny.ID_AMI) { nanny['distanceKM'] = selectedNanny.distanceKM; nanny['footTime'] = selectedNanny.footTime; tempList.data.push(nanny); tempList.count = tempList.count + 1; nanny.NUMERO = nanny.NUMERO === null ? "" : nanny.NUMERO; nanny.BTQ = nanny.BTQ === null ? "" : nanny.BTQ; nanny.TYPEVOIE = nanny.TYPEVOIE === null ? "" : nanny.TYPEVOIE; nanny.NOM_VOIE = nanny.NOM_VOIE === null ? "" : nanny.NOM_VOIE; nanny.CODE_POSTAL = nanny.CODE_POSTAL === null ? "" : nanny.CODE_POSTAL; var name = nanny.LAST_NAME + " " + nanny.FIRST_NAME; var distanceKM = nanny.distanceKM; var footTime = nanny.footTime; var address = nanny.NUMERO + " " + nanny.BTQ + " " + nanny.TYPEVOIE + " " + nanny.NOM_VOIE; var city = nanny.CODE_POSTAL + " " + nanny.VILLE; var html = '

' + _self.$translate.instant("NAME") + '

' + '

' + name + '

' + '

' + _self.$translate.instant("ADDRESS_COMP") + '

' + '

' + address + '

' + '

' + city + '

' + '

' + _self.$translate.instant("DISTANCE_HOUSE") + '

' + '

' + distanceKM + " " + _self.$translate.instant("km") + '

' + '

' + _self.$translate.instant("TRAVEL_FOOT_TIME") + '

' + '

' + footTime + " " + _self.$translate.instant("MINUTES") + '

' + ' div").remove(); $("#nanny-popup-container-" + selectedNanny.ID_AMI).append(html); } } } catch (err) { _iterator3.e(err); } finally { _iterator3.f(); } } } catch (err) { _iterator2.e(err); } finally { _iterator2.f(); } return tempList; } }, { key: "gridConstructor", value: function gridConstructor() { var _self = this; var hasError = false; var auxVar; var _iterator4 = _createForOfIteratorHelper(_self.listNannyGrid.data), _step4; try { var _loop = function _loop() { var elem = _step4.value; var addr = elem.NUMERO + "+" + elem.NOM_VOIE + "+" + elem.VILLE; //Get coordinates from Nannies _self.ProcessService.getHomeCoordinates(addr).then(function (response) { auxVar = response; })["catch"](function (error) { console.error(error); hasError = true; })["finally"](function () { var LONGITUDE = auxVar ? auxVar[0] : 0; var LATITUDE = auxVar ? auxVar[1] : 0; if (LONGITUDE !== 0 && LATITUDE !== 0) { elem.LONGITUDE = LONGITUDE; elem.LATITUDE = LATITUDE; var distanceKM = (ol.sphere.getDistance([parseFloat(_self.coordinatesHomeLatitude), parseFloat(_self.coordinatesHomeLongitude)], [parseFloat(LATITUDE), parseFloat(LONGITUDE)]) / 1000).toFixed(2); elem.distanceKM = distanceKM; // 12.5 minutes average time that takes a person to walk 1 km elem.footTime = (distanceKM * 12.5).toFixed(1); } }); }; for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) { _loop(); } // Disable Loader } catch (err) { _iterator4.e(err); } finally { _iterator4.f(); } _self.promise = _self.$timeout(function () { _self.isLoading = false; }, 100); } }, { key: "getFamilyAddress", value: function getFamilyAddress(grid) { var _self = this, auxVar, hasError; _self.ProcessService.getIHM25Integration(-1).then(function (response) { auxVar = response.data.DATA; })["catch"](function (error) { console.error(error); hasError = true; })["finally"](function () { _self.dataConstructor(auxVar, grid); }); } }, { key: "dataConstructor", value: function dataConstructor(mapData, grid) { var isCustom = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; var isUpdateDataOnly = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; var gridTempData = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : []; var _self = this; _self.mapData = mapData; _self.$timeout(function () { if (_self.isBackOffice) { if (isCustom) { _self.homeInfo = { "street": _self.targetAddress.street.stringFilter, "zipCode": _self.targetAddress.zipCode.stringFilter, "policeNumber": _self.targetAddress.number, "city": _self.targetAddress.city.stringFilter, "streetTypeDescription": _self.targetAddress.streetType.stringFilter, "btqDescription": _self.targetAddress.btq === null ? "" : _self.targetAddress.btq.stringFilter }; } else { _self.homeInfo = { "street": _self.target.selectedOptionValue.obj.street, "city": _self.target.selectedOptionValue.obj.description, "zipCode": _self.target.selectedOptionValue.obj.zipcode, "policeNumber": _self.target.selectedOptionValue.obj.numero, "streetTypeDescription": _self.target.selectedOptionValue.obj.streetTypeDescription, "btqDescription": _self.targetAddress.btq === null ? "" : _self.targetAddress.btq.stringFilter }; } var auxVar, hasError = false; var addr = _self.homeInfo.policeNumber + "+" + _self.homeInfo.street + "+" + _self.homeInfo.zipCode; _self.ProcessService.getHomeCoordinates(addr).then(function (response) { auxVar = response; })["catch"](function (error) { console.error(error); hasError = true; })["finally"](function () { if (hasError === false) { _self.coordinatesHomeLatitude = auxVar[1]; _self.coordinatesHomeLongitude = auxVar[0]; if (grid) { _self.gridConstructor(); } else { _self.mapConstructor(isUpdateDataOnly, gridTempData); } } }); return false; } var _iterator5 = _createForOfIteratorHelper(_self.mapData), _step5; try { for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) { var elem = _step5.value; if (elem.isLoged === 1) { if (elem.street !== null || elem.street !== "") { (function () { var auxVar = void 0, hasError = false; _self.homeInfo = { "policeNumber": elem.policeNumber, "btqDescription": elem.btqDescription, "streetTypeDescription": elem.streetTypeDescription, "street": elem.street, "zipCode": elem.zipCode, "city": elem.city }; var addr = elem.policeNumber + "+" + elem.street + "+" + elem.zipCode; _self.ProcessService.getHomeCoordinates(addr).then(function (response) { auxVar = response; })["catch"](function (error) { console.error(error); hasError = true; })["finally"](function () { if (hasError === false) { _self.coordinatesHomeLatitude = auxVar[1]; _self.coordinatesHomeLongitude = auxVar[0]; if (grid) { _self.gridConstructor(); } else { _self.mapConstructor(); } } }); })(); } else { if (navigator.geolocation) { //If user agrees to give location navigator.geolocation.watchPosition(function (position) { navigator.geolocation.getCurrentPosition(function (location) { _self.coordinatesHomeLongitude = location.coords.LONGITUDE; _self.coordinatesHomeLatitude = location.coords.LATITUDE; if (grid) { _self.gridConstructor(); } else { _self.mapConstructor(); } }); }, //If user does not agree to give location function (error) { if (error.code == error.PERMISSION_DENIED) { _self.coordinatesHomeLongitude = ""; _self.coordinatesHomeLatitude = ""; } }); } } } } } catch (err) { _iterator5.e(err); } finally { _iterator5.f(); } }, 100); } }, { key: "mapConstructor", value: function mapConstructor(isUpdateDataOnly, gridTempData) { var _self = this; if (isUpdateDataOnly) { _self.listNannyGrid = _self.updateNannyData(_self.tempData, gridTempData); _self.isLoadingMap = false; _self.isLoading = false; return false; } _self.map = null; _self.isLoadingMap = true; var elemMap = document.getElementById('mapDiv'); if (elemMap) { elemMap.parentNode.removeChild(elemMap); } var appendMap = "
\n" + "
\n" + "
\n" + "
"; $("#map-component").append(appendMap); var buttonsMaps = "
" + "
\n" + "
" + "\n" + " \n" + "
\n" + "
\n" + "\n" + "
\n" + " {{ 'CALENDAR_TOOLBAR_CLEAR_ALL' | translate }}\n" + " clear " + " \n" + "
"; var selectorButtonsMaps = $("#mapDiv").append(buttonsMaps); _self.$compile(selectorButtonsMaps)(_self.$scope); // let angular know about it var auxVar, hasError; var feature, iconStyle; var targetMapRender = "mapDiv"; var container = document.getElementById('popup'); var content = document.getElementById('popup-content'); var closer = document.getElementById('popup-closer'); _self.vectorSource = new ol.source.Vector({}); _self.vectorSourcePolygon = new ol.source.Vector({}); /** * Create an overlay to anchor the popup to the map. */ _self.overlay = new ol.Overlay({ element: container, autoPan: true, autoPanAnimation: { duration: 250 } }); _self.map = new ol.Map({ target: targetMapRender, layers: [new ol.layer.Tile({ source: new ol.source.OSM() }), new ol.layer.Vector({ source: _self.vectorSource })], overlays: [_self.overlay], view: new ol.View({ center: ol.proj.fromLonLat([parseFloat(_self.coordinatesHomeLongitude), parseFloat(_self.coordinatesHomeLatitude)]), zoom: 14 }) }); _self.homeInfo.policeNumber = _self.homeInfo.policeNumber === null ? "" : _self.homeInfo.policeNumber; _self.homeInfo.btqDescription = _self.homeInfo.btqDescription === null ? "" : _self.homeInfo.btqDescription; _self.homeInfo.streetTypeDescription = _self.homeInfo.streetTypeDescription === null ? "" : _self.homeInfo.streetTypeDescription; _self.homeInfo.street = _self.homeInfo.street === null ? "" : _self.homeInfo.street; _self.homeInfo.zipCode = _self.homeInfo.zipCode === null ? "" : _self.homeInfo.zipCode; feature = new ol.Feature({ geometry: new ol.geom.Point(ol.proj.transform([parseFloat(_self.coordinatesHomeLongitude), parseFloat(_self.coordinatesHomeLatitude)], 'EPSG:4326', 'EPSG:3857')), type: "home", address: _self.homeInfo.policeNumber + " " + _self.homeInfo.btqDescription + " " + _self.homeInfo.streetTypeDescription + " " + _self.homeInfo.street, city: _self.homeInfo.zipCode + " " + _self.homeInfo.city }); iconStyle = new ol.style.Style({ image: new ol.style.Icon({ scale: 1, anchorXUnits: 'fraction', anchorYUnits: 'pixels', src: _self.imgPath + 'assets/img/family-house-24.svg' }) }); feature.setStyle(iconStyle); // Set Home Icon _self.vectorSource.addFeature(feature); var counterNanny = 1; var totalNanny = _self.listNanny.data.length; var _iterator6 = _createForOfIteratorHelper(_self.listNanny.data), _step6; try { var _loop2 = function _loop2() { var elem = _step6.value; var getLatitudeLongitude = function getLatitudeLongitude(LATITUDE, LONGITUDE) { if (LONGITUDE !== 0 && LATITUDE !== 0) { elem.LONGITUDE = LONGITUDE; elem.LATITUDE = LATITUDE; var distanceKM = (ol.sphere.getDistance([parseFloat(_self.coordinatesHomeLatitude), parseFloat(_self.coordinatesHomeLongitude)], [parseFloat(LATITUDE), parseFloat(LONGITUDE)]) / 1000).toFixed(2); elem.distanceKM = distanceKM; // 12.5 minutes average time that takes a person to walk 1 km elem.footTime = (distanceKM * 12.5).toFixed(1); elem.NUMERO = elem.NUMERO === null ? "" : elem.NUMERO; elem.BTQ = elem.BTQ === null ? "" : elem.BTQ; elem.TYPEVOIE = elem.TYPEVOIE === null ? "" : elem.TYPEVOIE; elem.NOM_VOIE = elem.NOM_VOIE === null ? "" : elem.NOM_VOIE; elem.CODE_POSTAL = elem.CODE_POSTAL === null ? "" : elem.CODE_POSTAL; feature = new ol.Feature({ geometry: new ol.geom.Point(ol.proj.transform([parseFloat(LONGITUDE), parseFloat(LATITUDE)], 'EPSG:4326', 'EPSG:3857')), type: "nanny", id: elem.ID_AMI, name: elem.LAST_NAME + " " + elem.FIRST_NAME, distanceKM: elem.distanceKM, footTime: elem.footTime, address: elem.NUMERO + " " + elem.BTQ + " " + elem.TYPEVOIE + " " + elem.NOM_VOIE, city: elem.CODE_POSTAL + " " + elem.VILLE, elem: elem }); elem["ADDRESS_COMP"] = elem.NUMERO + " " + elem.BTQ + " " + elem.TYPEVOIE + " " + elem.NOM_VOIE + " " + elem.CODE_POSTAL + " " + elem.VILLE; elem["selected"] = false; iconStyle = new ol.style.Style({ image: new ol.style.Icon({ scale: 0.5, anchorXUnits: 'fraction', anchorYUnits: 'pixels', src: _self.imgPath + 'assets/img/nanny-map.png' }) }); feature.setStyle(iconStyle); _self.vectorSource.addFeature(feature); } counterNanny++; if (counterNanny === totalNanny) { // This function is to detect if the mouse in hovering a marker so that the cursor changes to status pointer _self.map.on('pointermove', function (evt) { var pixel = _self.map.getEventPixel(evt.originalEvent); var targetIcon = document.getElementById(targetMapRender); var point = _self.map.forEachFeatureAtPixel(pixel, function (point, layer) { return point; }); if (point) { targetIcon.style.cursor = "pointer"; } else { targetIcon.style.cursor = ""; } }); // Click event to open the marker popup _self.map.on('click', function (evt) { var coordinate = evt.coordinate; var targetIcon = document.getElementById(targetMapRender); var pixelClick = _self.map.getEventPixel(evt.originalEvent); var pointClick = _self.map.forEachFeatureAtPixel(pixelClick, function (point, layer) { return point; }); if (pointClick) { _self.mapDetails = pointClick.values_; content.innerHTML = ""; if (_self.mapDetails.type === "home") { content.innerHTML = '' + 'clear ' + '

' + _self.$translate.instant("ADDRESS_COMP") + '

' + '

' + pointClick.values_.address + '

' + '

' + pointClick.values_.city + '

'; //OTHERS_SCHOOLS_SELECTED var closeElement = $('#popup-closer'); closeElement = _self.$compile(closeElement)(_self.$scope); // let angular know about it _self.overlay.setPosition(coordinate); } if (_self.mapDetails.type === "nanny") { if (!_self.hasNanny(_self.mapDetails.elem.ID_AMI)) { var _iconStyle = new ol.style.Style({ image: new ol.style.Icon({ scale: 0.5, anchorXUnits: 'fraction', anchorYUnits: 'pixels', src: _self.imgPath + 'assets/img/nanny-active-map.png' }) }); pointClick.setStyle(_iconStyle); _self.promise = _self.$timeout(function () { _self.isLoading = true; _self.listNannyGrid.data.push(_self.mapDetails.elem); _self.listNannyGrid.count = _self.listNannyGrid.count + 1; _self.isLoading = false; }); content.innerHTML = '' + 'clear ' + '
' + '
' + '

' + _self.$translate.instant("NAME") + '

' + '

' + pointClick.values_.name + '

' + '

' + _self.$translate.instant("ADDRESS_COMP") + '

' + '

' + pointClick.values_.address + '

' + '

' + pointClick.values_.city + '

' + '

' + _self.$translate.instant("DISTANCE_HOUSE") + '

' + '

' + pointClick.values_.distanceKM + " " + _self.$translate.instant("km") + '

' + '

' + _self.$translate.instant("TRAVEL_FOOT_TIME") + '

' + '

' + pointClick.values_.footTime + " " + _self.$translate.instant("MINUTES") + '

' + '
' + '
'; angular.element("#popup").css({ "visibility": "visible" }); //OTHERS_SCHOOLS_SELECTED var _closeElement = $('#popup-closer'); _closeElement = _self.$compile(_closeElement)(_self.$scope); // let angular know about it } else { _self.promise = _self.$timeout(function () { _self.isLoading = true; _self.removeNanny(_self.mapDetails.elem.ID_AMI); angular.element("#popup").css({ "visibility": "hidden" }); _self.isLoading = false; }); } _self.overlay.setPosition(coordinate); } } }); } // Disable Loader _self.promise = _self.$timeout(function () { _self.isLoadingMap = false; _self.isLoading = false; }, 100); }; var addr = elem.NUMERO + "+" + elem.NOM_VOIE + "+" + elem.VILLE; // Number , rue name and city if (elem.LATITUDE === null || elem.LONGITUDE === null) { //Get coordinates from Nannies _self.ProcessService.getHomeCoordinates(addr).then(function (response) { auxVar = response; })["catch"](function (error) { console.error(error); hasError = true; })["finally"](function () { elem.LONGITUDE = auxVar ? auxVar[0] : 0; elem.LATITUDE = auxVar ? auxVar[1] : 0; getLatitudeLongitude(elem.LATITUDE, elem.LONGITUDE); }); } else { getLatitudeLongitude(elem.LATITUDE, elem.LONGITUDE); } }; for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) { _loop2(); } } catch (err) { _iterator6.e(err); } finally { _iterator6.f(); } _self.setPolygon(); } }, { key: "setPolygon", value: function setPolygon() { var self = this; self.Draw = new ol.interaction.Draw({ source: self.vectorSource, type: "Polygon" }); /* add ol.collection to hold all selected features */ self.select = new ol.interaction.Select(); self.Draw.on("drawstart", function (event) { self.closePopup(); self.promise = self.$timeout(function () { self.isLoading = false; self.selectedFeatures = self.select.getFeatures(); self.select.setActive(false); }); }, this); self.Draw.on("drawend", function (event) { self.closePopup(); self.isLoading = true; self.isLoadingMap = true; self.promise = self.$timeout(function () { delaySelectActivate(); self.selectedFeatures.clear(); var polygon = event.feature.getGeometry(); var features = self.vectorSource.getFeatures(); for (var i = 0; i < features.length; i++) { if (polygon.intersectsExtent(features[i].getGeometry().getExtent())) { if (features[i].values_.hasOwnProperty("elem") && features[i].values_.elem.hasOwnProperty("ID_AMI") && !self.hasNanny(features[i].values_.elem.ID_AMI)) { var iconStyle = new ol.style.Style({ image: new ol.style.Icon({ scale: 0.5, anchorXUnits: 'fraction', anchorYUnits: 'pixels', src: self.imgPath + 'assets/img/nanny-active-map.png' }) }); features[i].setStyle(iconStyle); self.selectedFeatures.push(features[i]); } } } var _iterator7 = _createForOfIteratorHelper(self.selectedFeatures.array_), _step7; try { for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) { var selected = _step7.value; if (!self.hasNanny(selected.values_.elem.ID_AMI)) { self.listNannyGrid.data.push(selected.values_.elem); self.listNannyGrid.count = self.listNannyGrid.count + 1; } } } catch (err) { _iterator7.e(err); } finally { _iterator7.f(); } self.isLoading = false; self.isLoadingMap = false; }); self.DrawTemp = self.Draw; }); function delaySelectActivate() { setTimeout(function () { self.select.setActive(true); }, 300); } } }, { key: "togglePolygon", value: function togglePolygon() { var self = this; self.enablePolygonFlag = !self.enablePolygonFlag; if (self.enablePolygonFlag) { self.map.addInteraction(self.Draw); self.map.addInteraction(self.select); } else { self.map.removeInteraction(self.Draw); self.map.removeInteraction(self.select); } } }, { key: "clear", value: function clear() { var self = this; self.promise = self.$timeout(function () { self.enablePolygonFlag = false; self.map.removeInteraction(self.Draw); self.map.removeInteraction(self.select); //self.vectorSource.clear(); self.select.setActive(false); if (self.hasOwnProperty("selectedFeatures")) { self.selectedFeatures.clear(); } self.listNannyGrid = { data: [], count: 0 }; var features = self.vectorSource.getFeatures(); for (var i = 0; i < features.length; i++) { if (features[i].values_.type === "nanny") { var iconStyle = new ol.style.Style({ image: new ol.style.Icon({ scale: 0.5, anchorXUnits: 'fraction', anchorYUnits: 'pixels', src: self.imgPath + 'assets/img/nanny-map.png' }) }); features[i].setStyle(iconStyle); } } for (var _i = 0; _i < features.length; _i++) { if (features[_i].values_.type !== "nanny" && features[_i].values_.type !== "home") { self.vectorSource.removeFeature(features[_i]); } } }); self.closePopup(); } }, { key: "hasNanny", value: function hasNanny(ID_AMI) { var flag = false; var _iterator8 = _createForOfIteratorHelper(this.listNannyGrid.data), _step8; try { for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) { var nanny = _step8.value; if (nanny.ID_AMI === ID_AMI) { flag = true; break; } } } catch (err) { _iterator8.e(err); } finally { _iterator8.f(); } return flag; } }, { key: "removeNanny", value: function removeNanny(ID_AMI) { var flag = false, selectedNannyIdx = -1; // If AMI exists in selected list remove if from the selected list angular.forEach(this.selected, function (nanny, key) { if (nanny.ID_AMI === ID_AMI) { selectedNannyIdx = key; return; } }); if (selectedNannyIdx !== -1) { this.selected.splice(selectedNannyIdx, 1); } for (var _i2 = 0; _i2 < this.listNannyGrid.data.length; _i2++) { if (this.listNannyGrid.data[_i2].ID_AMI === ID_AMI) { this.listNannyGrid.data.splice(_i2, 1); flag = true; break; } } if (flag) { this.listNannyGrid.count = this.listNannyGrid.count - 1; var features = this.vectorSource.getFeatures(); for (var i = 0; i < features.length; i++) { if (features[i].values_.hasOwnProperty("elem") && features[i].values_.elem.hasOwnProperty("ID_AMI") && features[i].values_.elem.ID_AMI === ID_AMI) { var iconStyle = new ol.style.Style({ image: new ol.style.Icon({ scale: 0.5, anchorXUnits: 'fraction', anchorYUnits: 'pixels', src: this.imgPath + 'assets/img/nanny-map.png' }) }); features[i].setStyle(iconStyle); } } } } //Close Popup action }, { key: "closePopup", value: function closePopup() { var _self = this; var pop = document.getElementById('popup-content'); _self.overlay.setPosition(undefined); pop.innerHTML = ""; } }, { key: "focus", value: function focus(nanny) { var _self = this; _self.map.getView().setCenter(ol.proj.transform([parseFloat(nanny.LONGITUDE), parseFloat(nanny.LATITUDE)], 'EPSG:4326', 'EPSG:3857')); _self.map.getView().setZoom(18); document.getElementById("mapDiv").scrollIntoView({ behavior: 'smooth', block: 'center' }); } }, { key: "removeFilter", value: function removeFilter() { var reloadMap = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; var self = this; self.filter.show = false; self.query.filter = ''; if (self.filter.form.$dirty) { self.filter.form.$setPristine(); } self.query.page = 1; //self.getRamInfoGrid(self.query, true); } }, { key: "removeSelection", value: function removeSelection() { var self = this; self.filter.show = false; self.selected = []; if (self.filter.form.$dirty) { self.filter.form.$setPristine(); } } }, { key: "toggleLimitOptions", value: function toggleLimitOptions() { var self = this; self.limitOptions = self.limitOptions ? undefined : [5, 10, 15, { label: 'ALL', value: self.listNannyGrid.data.length }]; } }, { key: "onPaginate", value: function onPaginate(page, limit) { var self = this.viewScopePagination; //console.log('Scope Page: ' + self.query.page + ' Scope Limit: ' + self.query.limit); //console.log('Page: ' + page + ' Limit: ' + limit); //self.getRamInfoGrid(self.query, true); } }, { key: "deselect", value: function deselect(item) { var self = this.viewScopePagination; //console.log(item, 'was deselected'); } }, { key: "log", value: function log(item) { var self = this.viewScopePagination; //console.log(item, 'was selected'); } }, { key: "onReorder", value: function onReorder(order) { var self = this.viewScopeReorder; self.query.page = 1; //console.log('Scope Order: ' + self.query.order); //console.log('Order: ' + order); //self.getRamInfoGrid(self.query, true); } }, { key: "showSearch", value: function showSearch() { var self = this; self.filter.show = true; self.query.filter = ""; self.$timeout(function () { $("#inputsearch").focus(); }, 200); } }, { key: "search", value: function search() { var self = this; self.query.page = 1; //self.getRamInfoGrid(self.query, true); } }, { key: "gridToogleColumns", value: function gridToogleColumns($event) { var self = this; self.$mdDialog.show({ contentElement: '#gridOptions', parent: angular.element(document.body), targetEvent: $event, clickOutsideToClose: true }); } }, { key: "close", value: function close() { var isUpdateDataOnly = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; var self = this; self.isLoadingMap = true; self.isLoading = true; if (!isUpdateDataOnly) { self.removeFilter(true); self.map = null; self.listNannyGrid = { data: [], count: 0 }; } self.$timeout(function () { self.getData(false, true); self.$mdDialog.hide(); }, 200); } }, { key: "nannyAdd", value: function nannyAdd($event) { var self = this; self.$mdDialog.show({ contentElement: '#nannyAdd', parent: angular.element(document.body), targetEvent: $event, clickOutsideToClose: false }); } }, { key: "details", value: function details($event, nanny) { var self = this; self.detailNanny = PCK_GLOBAL_VARIABLES.base_url_bo + "pck_ram.display_ami_info?p_id_ami=" + nanny.ID_AMI + "&p_type_view=1"; self.$mdDialog.show({ contentElement: '#nannyDetails', parent: angular.element(document.body), targetEvent: $event, clickOutsideToClose: false }); } }, { key: "trustSrcurl", value: function trustSrcurl(src) { return this.$sce.trustAsResourceUrl(src); } }, { key: "searchAddress", value: function searchAddress() { var self = this; if (self.target.selectedOptionValue.id === -1) { if (self.addressForm.$valid) { self.isLoadingMap = true; self.isLoading = true; self.getRamInfoGrid(self.queryAllData, false, true); //self.getRamInfoGrid(self.query, true, true) } } else { self.isLoadingMap = true; self.isLoading = true; self.getData(true); } } }]); return ramCtrl; }(); var ramComponent = { bindings: { settings: "