{"version":3,"sources":["webpack:///./wwwroot/src/coffee/areas/rtk/rtk-machine-tool-tip-info-plugin.coffee","webpack:///./wwwroot/src/coffee/areas/rtk/rtk-administration.coffee","webpack:///./wwwroot/src/coffee/areas/rtk/rtk-evaluation-setup.coffee","webpack:///./wwwroot/src/coffee/controls/map/plugins/location-search.coffee","webpack:///./wwwroot/src/coffee/areas/rtk/rtk-plans.coffee","webpack:///./wwwroot/src/coffee/areas/rtk/vrs-utilization-overview.coffee","webpack:///./wwwroot/src/coffee/areas/rtk/index.coffee","webpack:///./wwwroot/src/coffee/areas/rtk/my-licenses-for-entity-setup.coffee","webpack:///./wwwroot/src/coffee/areas/rtk/rtk.coffee","webpack:///./node_modules/ol/style/IconImage.js","webpack:///./node_modules/ol/style/Icon.js","webpack:///./wwwroot/src/coffee/areas/rtk/my-licenses.coffee","webpack:///./node_modules/ol/style/IconAnchorUnits.js","webpack:///./wwwroot/src/coffee/areas/rtk/radius-map-plugin.coffee","webpack:///./wwwroot/src/coffee/areas/rtk/rtk-telematic-plugin.coffee","webpack:///./wwwroot/src/coffee/areas/rtk/rtk-machine-path-map-plugin.coffee","webpack:///./wwwroot/src/coffee/areas/rtk/rtk-machine-path-map-setup.coffee","webpack:///./node_modules/ol/style/IconOrigin.js","webpack:///./wwwroot/src/coffee/areas/rtk/vrs-login-management.coffee"],"names":["moment","Circle","Feature","Overlay","Plugin","RTKMachineToolTipInfoPlugin","VectorLayer","VectorSource","WKT","getCorrectionFactorForLength","bind","fn","me","apply","arguments","__webpack_require__","superClass","$ctx","layerName","promise","this","init","$toolTipContainer","find","format","radiusSource","radiusVectorLayer","map","source","set","on","_this","evt","clear","forEachFeatureAtPixel","pixel","showRadius","overlay","setPosition","machineInformationToolTip","done","setupOverlay","feature","layer","pointGeometry","toolTipGeo","get","setContent","getProperties","getGeometry","getCoordinates","push","show","createRadiusOverlay","circleFeature","featureProperties","rtkPosition","getSource","getFeatureById","planUid","geometry","createRadiusGeometry","setId","addFeature","center","radius","readGeometry","transform","toolTipData","circleStatus","external","fixPointFloat","global","noGPS","noInformation","noPositionSet","noStatus","offline","online","onlineStatus","outOfRange","quality","status","withinGeoFancing","withinRange","data","html","vin","vehicleName","date","numberOfSatellites","altitude","hdop","userName","removeClass","addClass","isGlobal","isExternal","$toolTipContent","$toolTipClose","element","blur","addOverlay","module","exports","$","antiForgeryPost","checkSaveState","getByName","getPlanDetails","makeErrorHandler","makeRefreshHandler","makeReplaceHandler","makeSuccessHandler","makeWarningHandler","notifications","ref","ref1","ref2","register","renewalSelected","saveCustomerDetails","setupCustomerDetails","setupDeleteRTKPlan","setupLicenseReactivate","setupLicenseRenewalsTab","setupLogins","setupMyCustomers","setupRenewLicense","setupUpdateLicenseStart","updateMap","updatePopoverMessage","waitscreen","$daysDropdown","$monthsDropdown","$saveButton","$yearsDropdown","canSaveInRenewalMode","countLogins","currentPlanType","enableSaveBtn","endDate","features","globalPlanType","hasStartAndEndDate","numberOfLicences","planId","planType","renewalsSelected","rtkRadiusIsSet","startDate","val","staticgrid","table","length","layerManager","layers","webgis","getFeatures","parseInt","enable","disable","maxLogins","message","noLoginsText","noPositionAndLoginText","noPositionText","noRuntimeSelected","noStartEndDateSet","parent","popover","attr","$promise","$correctionDataCheckbox","$endDatePicker","$externalPlanTypeValue","$newStartDateBtn","$planDetail","$startDateTimePicker","$useExternalServiceSelectize","daysLicensingPeriodSelect","daysLicensingPeriodSelectize","defaultEndDate","endDateTimePicker","hasAdminRights","monthsLicensingPeriodSelect","monthsLicensingPeriodSelectize","runtimeSelectionChanged","selectize","startDateTimePicker","updateExternalServiceAvailability","yearsLicensingPeriodSelect","yearsLicensingPeriodSelectize","JSON","parse","toLowerCase","prop","minDate","startOf","rules","addItem","days","months","selectedDate","years","add","daysSelection","monthsSelection","yearsSelection","clone","radiusPlugin","plugins","pointMoved","$licenseBeginDatePicker","$licenseEndDatePicker","bottomFormValid","grid","model","noLoginsMessage","opt","planSettingsValid","position","selectedNumberOfLicenses","states","url","valid","getModifiedGeometriesWKT","dataProjection","featureProjection","writeFeature","PlanId","entityId","PlanType","LicenseBegin","LicenseEnd","Days","Months","Years","NumberOfLicences","Radius","NumberOfPosChanges","CustomerChanges","state","changes","PositionStates","noCorrectionData","FKExternalService","Position","then","res","i","len","name","ref3","duplicateUserNames","numberOfLicensesError","numberOfLicensesDecreased","remove","removeAttr","append","InvalidPlanType","invalidPlanType","$gridRenewals","order","draw","fail","waitFor","warning","$plan","$planDetails","$positionInfoAlert","positionInfoUrl","selectedItems","useExternalServiceSelectize","items","children","editor","customer","deleted","location","reload","$deleteButton","$modal","modal","$availableVehicles","$grid","$isReadonly","externalServiceOption","numberOfLicencesDropdown","useExternalService","options","useexternallogin","allVehicles","availableVehicles","isReadonly","hide","$infoText","$mountpointField","text","node","insertBefore","editControls","$button","e","mode","action","$form","currentVehicle","errorMsgPassword","errorMsgUsername","field","nodeExtPwd","nodeExtUserName","nodePwd","nodeUserName","requiredMsg","validator","vehicle","querySelector","clearOptions","addOption","value","refreshOptions","filter","x","dom","form","validate","clearValidation","setAttribute","off","o","formIsValid","preventDefault","$licenseEventReactivate","$licenseEventRenewal","$renewLicense","daysSelect","daysSelectize","isLicenseExpired","isLicenseRunning","monthsSelect","monthsSelectize","yearsSelect","yearsSelectize","question","replace","newEndDate","trigger","$reactivateLicense","licenseBegin","licenseEnd","$updateLicense","defaultDate","currentDate","isSame","RTKTelematicPlugin","telematicSetup","registerPlugin","LocationSearchPlugin","config","transformExtent","withPointerOvelay","searchUrl","bingApiKey","startSearch","$input","keyup","searchOnEnter","positionOverlay","createOverlay","$positionDiv","$positionIcon","mapTarget","overlayOptions","getTarget","positioning","stopEvent","event","keyCode","searchString","search","ajaxData","error","textStatus","errorThrown","toastr","type","contentType","success","searchCallback","dataType","jsonp","ajax","statusCode","resourceSets","estimatedTotal","goToFoundExtent","showFoundLocation","extent_900913","extent_WGS84","view","transformBingBBoxToOlExtent","resources","bbox","getView","fit","olExtent","transformBingCoordinatesToOlCoordinates","bingCoordinates","olCoordinates","location_900913","location_WGS84","point","coordinates","__esModule","loginListSetup","loginsDetailSetup","postionSaveSetup","savePosition","savelocalBaseLogins","setupPlanLoginGrid","numberOfAllowedPosChangesPerYear","numberOfPosChangesPerYear","$saveBtn","currentTarget","entityName","dt","indexes","uid","rows","pluck","selected","saveError","saveText","logins","reset","$detailButton","toArray","loginId","row","fkrtK_Plan","$selects","selectizes","updateLastSelected","updateSelects","lastSelected","j","k","len1","len2","results","getUtilization","gridRowSelectionChanged","refreshDetailsModal","refreshUtilizationGrid","setup","$detailsModal","$startDatePicker","$table","$updateOverviewBtn","datetimepicker","maxDate","column","$detailsButton","detailsGrid","selectedRow","title","details","columns","adjust","$parameters","utilization","detail","deselect","logon","logoff","payload","RadiusPlugin","clearLatLon","findNode","findParent","indexSetup","mapSetup","updateLatLon","updatePosition","companyId","expandNodeId","nodes","tree","getAllNodes","n","id","isExpanded","rebuildTree","activateNode","href","click","$lat","$lon","$updateBtn","vector","extent","geo","latitude","longitude","parsedRadius","parser","Globalize","numberParser","setCoordinates","setCenter","getExtent","changeDefaultExtent","coords","formatNumber","minimumFractionDigits","IconImage_IconImage","EventTarget","IconImage","image","src","size","crossOrigin","imageState","color","call","hitDetectionImage_","image_","Image","canvas_","document","createElement","color_","imageListenerKeys_","imageState_","size_","src_","tainted_","__proto__","prototype","Object","create","constructor","isTainted_","undefined","ImageState","LOADED","context","drawImage","getImageData","dispatchChangeEvent_","dispatchEvent","EventType","CHANGE","handleImageError_","ERROR","unlistenImage_","handleImageLoad_","width","height","replaceColor_","getImage","pixelRatio","getImageState","getHitDetectionImage","fillRect","canvas","getSize","getSrc","load","IDLE","LOADING","events","LOAD","ctx","getContext","imgData","r","g","b","ii","putImageData","forEach","Target","iconImage","IconImageCache","Icon_Icon","ImageStyle","Icon","opt_options","opacity","rotation","scale","rotateWithView","anchor_","anchor","normalizedAnchor_","anchorOrigin_","anchorOrigin","IconOrigin","TOP_LEFT","anchorXUnits_","anchorXUnits","IconAnchorUnits","FRACTION","anchorYUnits_","anchorYUnits","crossOrigin_","img","imgSize","asserts","util","ol_color","iconImage_","offset_","offset","offsetOrigin_","offsetOrigin","origin_","slice","getOpacity","getScale","getRotation","getRotateWithView","getAnchor","TOP_RIGHT","BOTTOM_RIGHT","BOTTOM_LEFT","setAnchor","getColor","getImageSize","getHitDetectionImageSize","getOrigin","iconImageSize","listenImageChange","listener","thisArg","unlistenImageChange","style_Image","__webpack_exports__","post","$detailsGrid","$duration","$title","$utilizationButton","refreshUtilizationDetailsGrid","selectedLicenseChanged","$btn","window","rtkUserName","duration","PIXELS","pointVectorLayer","pointSource","createRadiusOverlays","newPoint","pointDeleted","pointFeature","getId","raduisFeature","setGeometry","removeFeature","Fill","Stroke","Style","Text","customStyle","resolution","displayLabel","properties","styleDefinition","textFill","textStroke","fill","stroke","label","maxLabelResolution","textAlign","textBaseline","font","offsetX","offsetY","$updateButton","refreshVehicles","refreshUrl","showAdditionalOfflineMachines","vehicleFeatures","vehicleSource","vehicleLayer","mapcontrol","getLayersByName","setStyle","setSource","animate","zoom","geoCenter","zoomLevel","getCenter","getZoom","defaultExtent","vehicles","machineMapModels","converter","processJSObject","clearMapServerLayer","Number","MAX_VALUE","MIN_VALUE","xMin","yMin","xMax","yMax","addVehicles","setZoom","updateFeatures","updateFeature","v","addVehicle","machineGeometry","setProperties","licenseType","readFeature","planUID","RTKMachinePathMapPlugin","layerPoint","setMaxResolution","dateTimeInfoSource","showDateTime","dateTime","downloadCsv","machinePathMapPluginSetup","machinePathMapSetup","toggleButtons","updateMachinePath","$logins","$showPathBtn","endDatePicker","infoTextEndDateChanged","infoTextStartDateChanged","startDatePicker","now","subtract","diff","loginName","downloadUrl","$csvDownloadButton","$showPathButton","$resetButton","selectedRows","vrsLoginIds"],"mappings":"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","file":"js/chunk-74bdac32.6bf77904.js","sourcesContent":["{getCorrectionFactorForLength} = require 'src/coffee/controls/map/utilities/coordinates'\r\n{Plugin} = require 'src/coffee/controls/map/plugins/base'\r\n\r\nWKT = require('ol/format/WKT').default\r\nFeature = require('ol/Feature').default\r\nOverlay = require('ol/Overlay').default\r\nCircle = require('ol/geom/Circle').default\r\nVectorLayer = require('ol/layer/Vector').default\r\nVectorSource = require('ol/source/Vector').default\r\n\r\nclass RTKMachineToolTipInfoPlugin extends Plugin\r\n constructor: ($ctx, layerName, promise) ->\r\n @$ctx = $ctx\r\n @layerName = layerName\r\n @promise = promise\r\n\r\n init: ->\r\n @$toolTipContainer = @$ctx.find('#tooltip-container')\r\n @format = new WKT\r\n @radiusSource = new VectorSource\r\n @radiusVectorLayer = new VectorLayer\r\n map: @map\r\n source: @radiusSource\r\n @radiusVectorLayer.set 'name', 'radius-layer'\r\n @map.on 'pointermove', (evt) =>\r\n @radiusSource.clear()\r\n @map.forEachFeatureAtPixel evt.pixel, @showRadius\r\n\r\n @map.on 'singleclick', (evt) =>\r\n @overlay.setPosition(undefined)\r\n @map.forEachFeatureAtPixel evt.pixel, @machineInformationToolTip\r\n @promise.done =>\r\n @setupOverlay()\r\n\r\n machineInformationToolTip: (feature, layer) =>\r\n return unless layer and layer.get('name') is @layerName\r\n @setContent feature.getProperties()\r\n pointGeometry = feature.getGeometry().getCoordinates()\r\n toolTipGeo = []\r\n toolTipGeo.push pointGeometry[0] + 824\r\n toolTipGeo.push pointGeometry[1] + 454\r\n\r\n @overlay.setPosition(pointGeometry)\r\n\r\n @$toolTipContainer.show()\r\n @showRadius feature\r\n\r\n\r\n showRadius: (feature, layer) =>\r\n return unless layer and layer.get('name') is @layerName\r\n\r\n @createRadiusOverlay feature\r\n\r\n createRadiusOverlay: (feature) ->\r\n featureProperties = feature.getProperties()\r\n\r\n unless featureProperties.rtkPosition\r\n return\r\n if @radiusVectorLayer.getSource().getFeatureById featureProperties.planUid\r\n return\r\n circleFeature = new Feature\r\n geometry: @createRadiusGeometry featureProperties\r\n circleFeature.setId featureProperties.planUid\r\n @radiusSource.addFeature circleFeature\r\n\r\n createRadiusGeometry: (featureProperties) ->\r\n center = @format.readGeometry(featureProperties.rtkPosition)\r\n center.transform 'EPSG:4326', 'EPSG:900913'\r\n radius = featureProperties.radius\r\n unless radius\r\n return\r\n #radius = $('#Radius').val()\r\n radius = radius * 1000 / getCorrectionFactorForLength(@map)\r\n return new Circle center.getCoordinates(), radius\r\n\r\n setContent: (toolTipData) ->\r\n status = toolTipData.status\r\n online = @$toolTipContainer.find('#online-status').data('status-online')\r\n offline = @$toolTipContainer.find('#online-status').data('status-offline')\r\n withinRange = @$toolTipContainer.find('#within-geofancing').data('within-range')\r\n outOfRange = @$toolTipContainer.find('#within-geofancing').data('out-of-range')\r\n noStatus = @$toolTipContainer.find('#online-status').data('no-status')\r\n noInformation = @$toolTipContainer.find('#within-geofancing').data('no-information')\r\n noGPS = @$toolTipContainer.find('#fix-point-float').data('no-gps')\r\n global = @$toolTipContainer.find('#within-geofancing').data('global')\r\n external = @$toolTipContainer.find('#within-geofancing').data('external')\r\n noPositionSet = @$toolTipContainer.find('#within-geofancing').data('no-position-set')\r\n fixPointFloat = @$toolTipContainer.find('#fix-point-float')\r\n withinGeoFancing = @$toolTipContainer.find('#within-geofancing')\r\n onlineStatus = @$toolTipContainer.find('#online-status')\r\n circleStatus = @$toolTipContainer.find('#online-status-circle')\r\n\r\n @$toolTipContainer.find('#vin').html(toolTipData.vin)\r\n @$toolTipContainer.find('#vehicle-name').html(toolTipData.vehicleName)\r\n @$toolTipContainer.find('#date').html(moment(toolTipData.date).format('L LT'))\r\n @$toolTipContainer.find('#number-of-satellites').html(toolTipData.numberOfSatellites)\r\n @$toolTipContainer.find('#altitude').html(toolTipData.altitude)\r\n @$toolTipContainer.find('#hdop').html(toolTipData.hdop)\r\n @$toolTipContainer.find('#title').html(toolTipData.userName)\r\n\r\n quality = toolTipData.quality\r\n if quality is 'RTKFix'\r\n fixPointFloat.html(quality)\r\n else if quality is 'DGPS'\r\n fixPointFloat.html(quality)\r\n else if quality is 'RTKFloat'\r\n fixPointFloat.html(quality)\r\n else if quality is 'GPS'\r\n fixPointFloat.html(quality)\r\n else\r\n fixPointFloat.html(noGPS)\r\n\r\n if status is 'Online'\r\n onlineStatus.html(online)\r\n\r\n circleStatus.removeClass('circle-red')\r\n circleStatus.addClass('circle-green')\r\n if toolTipData.rtkPosition\r\n withinGeoFancing.html(withinRange)\r\n else\r\n if toolTipData.isGlobal\r\n withinGeoFancing.html(global)\r\n else if toolTipData.isExternal\r\n withinGeoFancing.html(external)\r\n else\r\n withinGeoFancing.html(noPositionSet)\r\n else if status is 'Online_OutOfRange'\r\n onlineStatus.html(online)\r\n circleStatus.removeClass('circle-red')\r\n circleStatus.addClass('circle-green')\r\n if toolTipData.rtkPosition\r\n withinGeoFancing.html(outOfRange)\r\n else\r\n if toolTipData.isGlobal\r\n withinGeoFancing.html(global)\r\n else if toolTipData.isExternal\r\n withinGeoFancing.html(external)\r\n else\r\n withinGeoFancing.html(noPositionSet)\r\n else if status is 'Offline'\r\n onlineStatus.html(offline)\r\n circleStatus.removeClass('circle-green')\r\n circleStatus.addClass('circle-red')\r\n if toolTipData.rtkPosition\r\n withinGeoFancing.html(withinRange)\r\n else\r\n if toolTipData.isGlobal\r\n withinGeoFancing.html(global)\r\n else if toolTipData.isExternal\r\n withinGeoFancing.html(external)\r\n else\r\n withinGeoFancing.html(noPositionSet)\r\n else if status is 'Offline_OutOfRange'\r\n onlineStatus.html(offline)\r\n circleStatus.removeClass('circle-green')\r\n circleStatus.addClass('circle-red')\r\n if toolTipData.rtkPosition\r\n withinGeoFancing.html(outOfRange)\r\n else\r\n if toolTipData.isGlobal\r\n withinGeoFancing.html(global)\r\n else if toolTipData.isExternal\r\n withinGeoFancing.html(external)\r\n else\r\n withinGeoFancing.html(noPositionSet)\r\n else\r\n onlineStatus.html(noStatus)\r\n circleStatus.addClass('circle-grey')\r\n withinGeoFancing.html(noInformation)\r\n\r\n\r\n setupOverlay: ->\r\n @$toolTipContent = @$toolTipContainer.find('#tooltip-content')\r\n @$toolTipClose = @$toolTipContainer.find('#tooltip-close')\r\n @overlay = new Overlay\r\n element: @$toolTipContainer[0]\r\n\r\n @$toolTipClose.on 'click', =>\r\n @overlay.setPosition(undefined)\r\n @$toolTipClose.blur()\r\n return false\r\n\r\n @map.addOverlay @overlay\r\n\r\nmodule.exports = {\r\n RTKMachineToolTipInfoPlugin\r\n}\r\n","{waitscreen} = require 'src/js/infrastructure'\r\n{notifications} = require 'src/js/infrastructure'\r\n{register} = require 'src/js/infrastructure/setup-registry'\r\n{get, antiForgeryPost} = require 'src/coffee/infrastructure/ajax'\r\n\r\n{makeReplaceHandler, makeRefreshHandler} = require 'src/coffee/helpers/async/fragment-loading'\r\n{makeSuccessHandler, makeErrorHandler, makeWarningHandler} = require 'src/coffee/helpers/async/notifications'\r\n\r\n{getByName} = require 'src/coffee/controls/map'\r\n\r\nWKT = require('ol/format/WKT').default\r\n\r\ncheckSaveState = ($ctx = $('#content')) ->\r\n $saveButton = $ctx.find('#saveCustomerDetails')\r\n currentPlanType = $ctx.find('#currentPlanType').val()\r\n globalPlanType = $ctx.find('#globalPlanType').val()\r\n planType = $ctx.find('#PlanType').val()\r\n planId = $ctx.find('#planId').val()\r\n $daysDropdown = $ctx.find('#days-dropdown')\r\n $monthsDropdown = $ctx.find('#months-dropdown')\r\n $yearsDropdown = $ctx.find('#years-dropdown')\r\n endDate = $ctx.find('#licenseEnd').data('DateTimePicker').date()\r\n startDate = $ctx.find('#licenseBegin').data('DateTimePicker').date()\r\n countLogins = 0\r\n numberOfLicences = 0\r\n rtkRadiusIsSet = true\r\n renewalsSelected = renewalSelected($daysDropdown, $monthsDropdown, $yearsDropdown)\r\n hasStartAndEndDate = false\r\n if endDate and startDate\r\n hasStartAndEndDate = true\r\n\r\n if planType\r\n countLogins = $ctx.find('#customerLoginsGrid').staticgrid()[0].table.data().length\r\n if currentPlanType isnt globalPlanType\r\n map = getByName 'RTKMap'\r\n source = map.layerManager.layers.webgis()[0].getSource()\r\n features = source.getFeatures()\r\n rtkRadiusIsSet = features?.length > 0\r\n numberOfLicences = parseInt $ctx.find('#NumberOfLicences').val()\r\n\r\n updatePopoverMessage($saveButton, countLogins, rtkRadiusIsSet, numberOfLicences, planId, renewalsSelected, hasStartAndEndDate)\r\n\r\n canSaveInRenewalMode = true\r\n if planId\r\n canSaveInRenewalMode = !renewalsSelected\r\n\r\n enableSaveBtn = currentPlanType and endDate and startDate and rtkRadiusIsSet and (numberOfLicences > 0) and (numberOfLicences >= countLogins) and (countLogins > 0) and canSaveInRenewalMode\r\n if enableSaveBtn\r\n $saveButton.enable()\r\n else\r\n $saveButton.disable()\r\n\r\nupdatePopoverMessage = ($saveButton, countLogins, rtkRadiusIsSet, numberOfLicences, planId, renewalsSelected, hasStartAndEndDate) ->\r\n noLoginsText = $saveButton.data 'no-logins-message'\r\n maxLogins = $saveButton.data 'max-logins'\r\n noPositionText = $saveButton.data 'no-position-message'\r\n noPositionAndLoginText = $saveButton.data 'no-position-login-message'\r\n renewalSelected = $saveButton.data 'renewal-selected'\r\n noRuntimeSelected = $saveButton.data 'no-runtime-selected'\r\n noStartEndDateSet = $saveButton.data 'no-start-end-date-set'\r\n message = ''\r\n if(countLogins is 0 and not rtkRadiusIsSet)\r\n message = noPositionAndLoginText\r\n else if (countLogins > numberOfLicences)\r\n message = maxLogins\r\n else if (countLogins is 0)\r\n message = noLoginsText\r\n else if (countLogins <= numberOfLicences and not rtkRadiusIsSet)\r\n message = noPositionText\r\n else if renewalsSelected and hasStartAndEndDate\r\n if planId\r\n message = renewalSelected\r\n else if not renewalsSelected and (countLogins > 0)\r\n unless planId\r\n message = noRuntimeSelected\r\n else if not hasStartAndEndDate\r\n message = noStartEndDateSet\r\n else\r\n message = ''\r\n\r\n if message\r\n $saveButton.disable().parent().popover().attr('data-content', message)\r\n else\r\n $saveButton.enable().parent().popover('destroy')\r\n\r\nsetupCustomerDetails = ($ctx, $promise) ->\r\n $newStartDateBtn = $ctx.find('#newStartDateButton')\r\n $correctionDataCheckbox = $ctx.find('#no-correction-data')\r\n hasAdminRights = JSON.parse($ctx.find('#hasAdminRights').data('value').toLowerCase())\r\n $planDetail = $ctx.find('#PlanType')\r\n $useExternalServiceSelectize = $ctx.find('#external-service')\r\n selectize = $useExternalServiceSelectize.selectize()[0].selectize\r\n $externalPlanTypeValue = $ctx.find('#externalPlanTypeValue')\r\n planId = $ctx.find('#planId').val()\r\n $saveButton = $ctx.find('#saveCustomerDetails')\r\n\r\n $startDateTimePicker = $ctx.find('#licenseBegin')\r\n startDateTimePicker = $startDateTimePicker.data('DateTimePicker')\r\n\r\n $endDatePicker = $ctx.find('#licenseEnd')\r\n endDateTimePicker = $endDatePicker.data('DateTimePicker')\r\n\r\n $daysDropdown = $ctx.find('#days-dropdown')\r\n $monthsDropdown = $ctx.find('#months-dropdown')\r\n $yearsDropdown = $ctx.find('#years-dropdown')\r\n\r\n daysLicensingPeriodSelect = $daysDropdown.selectize()\r\n daysLicensingPeriodSelectize = daysLicensingPeriodSelect[0].selectize\r\n\r\n monthsLicensingPeriodSelect = $monthsDropdown.selectize()\r\n monthsLicensingPeriodSelectize = monthsLicensingPeriodSelect[0].selectize\r\n\r\n yearsLicensingPeriodSelect = $yearsDropdown.selectize()\r\n yearsLicensingPeriodSelectize = yearsLicensingPeriodSelect[0].selectize\r\n\r\n $correctionDataCheckbox.on 'click', ->\r\n $correctionDataCheckbox.data('default-value', $correctionDataCheckbox.prop('checked'))\r\n\r\n $newStartDateBtn.on 'click', ->\r\n $('#new-license-begin').data('DateTimePicker').minDate(moment().startOf('day'))\r\n\r\n defaultEndDate = null\r\n\r\n if planId\r\n defaultEndDate = endDateTimePicker.date()\r\n else\r\n startDateTimePicker.minDate(moment().startOf('day'))\r\n\r\n updateExternalServiceAvailability = (hasAdminRights) ->\r\n if $externalPlanTypeValue.data('value') is parseInt($planDetail.val())\r\n $useExternalServiceSelectize.rules('add', 'required')\r\n $correctionDataCheckbox.prop('checked', false)\r\n $correctionDataCheckbox.disable()\r\n selectize.addItem($useExternalServiceSelectize.data('default-value'), true)\r\n if hasAdminRights\r\n selectize.enable()\r\n else\r\n $useExternalServiceSelectize.rules('remove', 'required')\r\n $correctionDataCheckbox.prop('checked', JSON.parse($correctionDataCheckbox.data('default-value').toLowerCase()))\r\n $correctionDataCheckbox.enable()\r\n selectize.disable()\r\n selectize.clear(true)\r\n\r\n $planDetail.on 'change', ->\r\n getPlanDetails()\r\n updateExternalServiceAvailability hasAdminRights\r\n\r\n $useExternalServiceSelectize.on 'change', ->\r\n getPlanDetails()\r\n\r\n $saveButton.on 'click', saveCustomerDetails\r\n\r\n $startDateTimePicker.on 'dp.change', ->\r\n selectedDate = startDateTimePicker.date()\r\n if selectedDate and hasAdminRights\r\n startDate = selectedDate\r\n daysLicensingPeriodSelectize.enable()\r\n monthsLicensingPeriodSelectize.enable()\r\n yearsLicensingPeriodSelectize.enable()\r\n\r\n days = parseInt daysLicensingPeriodSelect.val()\r\n months = parseInt monthsLicensingPeriodSelect.val()\r\n years = parseInt yearsLicensingPeriodSelect.val()\r\n\r\n if (days + months + years) > 0\r\n endDateTimePicker.date startDate.add(years, 'years').add(months, 'months').add(days, 'days')\r\n else\r\n endDateTimePicker.clear()\r\n else\r\n startDate = startDateTimePicker.date()\r\n endDateTimePicker.clear()\r\n daysLicensingPeriodSelectize.disable()\r\n monthsLicensingPeriodSelectize.disable()\r\n yearsLicensingPeriodSelectize.disable()\r\n checkSaveState()\r\n\r\n runtimeSelectionChanged = ->\r\n startDate = startDateTimePicker.date()\r\n daysSelection = $daysDropdown.val()\r\n monthsSelection = $monthsDropdown.val()\r\n yearsSelection = $yearsDropdown.val()\r\n\r\n days = parseInt daysSelection\r\n months = parseInt monthsSelection\r\n years = parseInt yearsSelection\r\n\r\n if renewalSelected($daysDropdown, $monthsDropdown, $yearsDropdown)\r\n if planId\r\n endDate = defaultEndDate.clone()\r\n endDateTimePicker.date endDate.add(years, 'years').add(months, 'months').add(days, 'days')\r\n else\r\n endDateTimePicker.date startDate.add(years, 'years').add(months, 'months').add(days, 'days')\r\n else\r\n if planId\r\n endDateTimePicker.date defaultEndDate\r\n else\r\n endDateTimePicker.clear()\r\n checkSaveState()\r\n\r\n daysLicensingPeriodSelectize.on 'change', runtimeSelectionChanged\r\n monthsLicensingPeriodSelectize.on 'change', runtimeSelectionChanged\r\n yearsLicensingPeriodSelectize.on 'change', runtimeSelectionChanged\r\n\r\n $promise.done updateExternalServiceAvailability hasAdminRights\r\n\r\n unless planId\r\n checkSaveState $ctx\r\n\r\nrenewalSelected = ($daysDropdown, $monthsDropdown, $yearsDropdown) ->\r\n days = parseInt $daysDropdown.val()\r\n months = parseInt $monthsDropdown.val()\r\n years = parseInt $yearsDropdown.val()\r\n\r\n return (days + months + years) > 0\r\n\r\nupdateMap = ->\r\n radius = $('#radius').val()\r\n map = getByName 'RTKMap'\r\n unless map\r\n return\r\n source = map.layerManager.layers.webgis()[0].getSource()\r\n features = source.getFeatures()\r\n source.on 'addfeature', -> checkSaveState()\r\n source.on 'removefeature', -> checkSaveState()\r\n\r\n unless features.length isnt 0\r\n return\r\n\r\n features[0].set 'radius', radius\r\n radiusPlugin = map.plugins[map.plugins.length - 1]\r\n radiusPlugin.pointMoved\r\n feature: features[0]\r\n\r\nsaveCustomerDetails = ->\r\n bottomFormValid = $('#detailedCustomerForm').valid()\r\n planSettingsValid = $('#plan-settings').valid()\r\n $licenseBeginDatePicker = $('#licenseBegin')\r\n $licenseEndDatePicker = $('#licenseEnd')\r\n\r\n currentNumberOfLicenses = $('#current-number-of-licenses').val()\r\n\r\n selectedNumberOfLicenses = $('#NumberOfPosChanges').val()\r\n\r\n #todo check Grid number of Rows with NumberOfLicences to check it its valid\r\n return unless bottomFormValid and planSettingsValid\r\n\r\n url = $('#saveCustomerDetails').data 'url'\r\n planType = $('#PlanType').val()\r\n grid = $('#customerLoginsGrid').staticgrid()[0]\r\n map = getByName 'RTKMap'\r\n position = null\r\n if map\r\n features = map.webgis.getFeatures()\r\n states = map.webgis.getModifiedGeometriesWKT()\r\n if features.length\r\n format = new WKT()\r\n opt =\r\n dataProjection: 'EPSG:4326'\r\n featureProjection: 'EPSG:900913'\r\n position = format.writeFeature features[0], opt\r\n\r\n\r\n model =\r\n PlanId: $('#planId').val()\r\n entityId: $('#EntityId').val() or $('#hiddenEntityId').val()\r\n PlanType: planType\r\n LicenseBegin: $licenseBeginDatePicker.data('DateTimePicker').date().startOf('day')\r\n LicenseEnd: $licenseEndDatePicker.data('DateTimePicker').date().startOf('day')\r\n Days: $('#days-dropdown').val()\r\n Months: $('#months-dropdown').val()\r\n Years: $('#years-dropdown').val()\r\n NumberOfLicences: $('#NumberOfLicences').val()\r\n Radius: $('#radius').val()\r\n NumberOfPosChanges: selectedNumberOfLicenses\r\n CustomerChanges: grid.state.changes()\r\n PositionStates: states\r\n noCorrectionData: $('#no-correction-data').prop('checked')\r\n FKExternalService: $('#external-service').val()\r\n Position: position\r\n\r\n noLoginsMessage = $('#saveCustomerDetails').data 'no-logins-message'\r\n\r\n if grid.table.data().length is 0\r\n notifications.warning noLoginsMessage\r\n return\r\n\r\n promise = antiForgeryPost url, {model}\r\n .then (res) ->\r\n if res.duplicateUserNames or res.numberOfLicensesError or res.numberOfLicensesDecreased\r\n if res.numberOfLicensesDecreased\r\n makeWarningHandler($('#saveCustomerDetails').data('licenses-decreased-warning-message'))()\r\n $('#duplicate-user-names').attr('hidden', true)\r\n if res.duplicateUserNames\r\n $('#duplicate-user-names ul li').remove()\r\n $('#duplicate-user-names').removeAttr('hidden')\r\n for name in res.duplicateUserNames\r\n $('#duplicate-user-names ul').append('
  • ' + name + '
  • ')\r\n makeWarningHandler($('#duplicate-user-names'))()\r\n\r\n $('#invalidPlanType').addClass('invisible')\r\n $('#numberOfLicensesError').addClass('invisible')\r\n if res.numberOfLicensesError or res.InvalidPlanType\r\n if res.numberOfLicensesError\r\n $('#numberOfLicensesError').removeClass('invisible')\r\n if res.invalidPlanType\r\n $('#invalidPlanType').removeClass('invisible')\r\n makeWarningHandler($('#saveCustomerDetails'))()\r\n else\r\n makeRefreshHandler()(res)\r\n makeSuccessHandler($('#saveCustomerDetails'))()\r\n .then ->\r\n $gridRenewals = $('#license-renewals').staticgrid()[0]\r\n $gridRenewals.table.order [0, 'desc']\r\n .draw()\r\n .fail makeErrorHandler $('#saveCustomerDetails')\r\n\r\n waitscreen.waitFor promise\r\n\r\ngetPlanDetails = ->\r\n $saveButton = $('#saveCustomerDetails')\r\n\r\n $plan = $('#PlanType')\r\n planType = $plan.val()\r\n\r\n url = $plan.data 'url'\r\n planId = $('#planId').val()\r\n\r\n $planDetails = $('#planDetails')\r\n $positionInfoAlert = $('#position-info-alert')\r\n\r\n useExternalServiceSelectize = $('#external-service').selectize()[0].selectize\r\n selectedItems = useExternalServiceSelectize.items\r\n\r\n unless planType\r\n $planDetails.children().remove()\r\n $saveButton.disable()\r\n return\r\n\r\n url += \"&planType=#{planType}\"\r\n if planId\r\n url += \"&planId=#{planId}\"\r\n\r\n if selectedItems.length > 0\r\n url += \"&externalServiceId=#{selectedItems[0]}\"\r\n\r\n promise = get url\r\n .done makeReplaceHandler $planDetails\r\n waitscreen.waitFor promise\r\n\r\n positionInfoUrl = $plan.data 'info-url'\r\n positionInfoUrl += \"?planType=#{planType}\"\r\n if planId\r\n positionInfoUrl += \"&planId=#{planId}\"\r\n\r\n promise = get positionInfoUrl\r\n .done makeReplaceHandler $positionInfoAlert\r\n waitscreen.waitFor promise\r\n\r\nsetupMyCustomers = ($ctx) ->\r\n grid = $ctx.find('#MyCustomersGrid').staticgrid()[0]\r\n grid.editor.on 'preRemove', ->\r\n url = $('#deleteUrl').val()\r\n state = grid.state.changes()\r\n model =\r\n customer: state.deleted[0]\r\n promise = antiForgeryPost url, model, $('form')\r\n .fail ->\r\n location.reload()\r\n waitscreen.waitFor promise\r\n\r\nsetupDeleteRTKPlan = ($ctx) ->\r\n $deleteButton = $ctx.find('#delete')\r\n url = $deleteButton.data 'url'\r\n $modal = $ctx.find('#delete-modal')\r\n\r\n $deleteButton.on 'click', ->\r\n $modal.modal('hide')\r\n\r\n data =\r\n planId: $('#PlanId').val()\r\n entityId: $('#EntityId').val()\r\n\r\n promise = antiForgeryPost url, data\r\n .then makeReplaceHandler $('#content')\r\n .done makeSuccessHandler $deleteButton\r\n .fail makeErrorHandler $deleteButton\r\n waitscreen.waitFor promise\r\n\r\nsetupLogins = ($ctx, promise) ->\r\n $grid = $ctx.find('#customerLoginsGrid').staticgrid()[0]\r\n numberOfLicencesDropdown = $ctx.find('#NumberOfLicences')\r\n $availableVehicles = $ctx.find('#available-vehicles')\r\n $isReadonly = $ctx.find('#is-readonly')\r\n $planDetails = $('#planDetails')\r\n planType = $('#PlanType').val()\r\n useExternalServiceSelectize = $('#external-service').selectize()[0].selectize\r\n selectedItems = useExternalServiceSelectize.items\r\n hasAdminRights = JSON.parse($('#hasAdminRights').data('value').toLowerCase())\r\n useExternalService = false\r\n\r\n if selectedItems.length > 0\r\n externalServiceOption = useExternalServiceSelectize.options[selectedItems[0]]\r\n useExternalService = JSON.parse externalServiceOption.useexternallogin.toLowerCase()\r\n\r\n $ctx.find('#radius').on 'change', updateMap\r\n promise.done ->\r\n updateMap()\r\n numberOfLicences = parseInt numberOfLicencesDropdown.val()\r\n countLogins = $grid.table.data().length\r\n\r\n promise.then ->\r\n checkSaveState()\r\n isReadonly = JSON.parse ($isReadonly.data 'is-readonly').toLowerCase()\r\n\r\n if isReadonly\r\n $grid.editor.on 'initEdit', ->\r\n $grid.editor.show()\r\n $grid.editor.hide('username')\r\n $grid.editor.hide('externalUsername')\r\n $grid.editor.hide('mountpoint')\r\n $grid.editor.hide('password')\r\n $grid.editor.hide('port')\r\n $grid.editor.hide('serverAddress')\r\n $grid.editor.hide('fkVehicle')\r\n else\r\n $grid.editor.on 'preOpen', ->\r\n text = $planDetails.data('optional-info-description')\r\n $infoText = $ \"
    #{text}
    \"\r\n $mountpointField = $grid.editor.node 'mountpoint'\r\n\r\n $infoText.insertBefore $mountpointField\r\n\r\n if(countLogins >= numberOfLicences)\r\n $grid.editControls.add.$button.disable()\r\n\r\n numberOfLicencesDropdown.on 'change', ->\r\n numberOfLicences = parseInt numberOfLicencesDropdown.val()\r\n countLogins = $grid.table.data().length\r\n checkSaveState()\r\n\r\n if(countLogins >= numberOfLicences)\r\n $grid.editControls.add.$button.disable()\r\n else\r\n $grid.editControls.add.$button.enable()\r\n\r\n $grid.editor.on 'postCreate', ->\r\n numberOfLicences = parseInt numberOfLicencesDropdown.val()\r\n countLogins = $grid.table.data().length\r\n if(countLogins >= numberOfLicences)\r\n $grid.editControls.add.$button.disable()\r\n else\r\n $grid.editControls.add.$button.enable()\r\n\r\n checkSaveState()\r\n $grid.editor.on 'postRemove', ->\r\n numberOfLicences = parseInt numberOfLicencesDropdown.val()\r\n countLogins = $grid.table.data().length\r\n if(countLogins >= numberOfLicences)\r\n $grid.editControls.add.$button.disable()\r\n else\r\n $grid.editControls.add.$button.enable()\r\n\r\n checkSaveState()\r\n\r\n availableVehicles = JSON.parse $availableVehicles.html()\r\n allVehicles = null\r\n $grid.editor.on 'preOpen', (e, mode, action) ->\r\n field = $grid.editor.field('fkVehicle')\r\n selectize = field.node().querySelector('select').selectize\r\n\r\n currentVehicle = selectize.options[selectize.items[0]]\r\n allVehicles = selectize.options\r\n selectize.clear(true)\r\n selectize.clearOptions()\r\n\r\n if currentVehicle\r\n selectize.addOption(currentVehicle)\r\n selectize.addItem(currentVehicle.value, true)\r\n\r\n for vehicle in availableVehicles\r\n selectize.addOption(vehicle)\r\n selectize.refreshOptions(false)\r\n\r\n selectize.on 'change', (value) ->\r\n if currentVehicle\r\n availableVehicles.push(currentVehicle)\r\n if value\r\n currentVehicle = selectize.options[selectize.items[0]]\r\n availableVehicles = availableVehicles.filter((x) -> x.value isnt value)\r\n\r\n # validation\r\n $form = $($grid.editor.dom.form)\r\n validator = $form.validate()\r\n $form.data 'validator', validator\r\n $form.clearValidation()\r\n requiredMsg = $('#validation-messages').data 'msg-rule-required'\r\n\r\n nodePwd = $grid.editor.field('password').node()\r\n nodePwd.querySelector('input').setAttribute('data-rule-regex', '^[a-zA-Z0-9_?!%&=\\\\-+]+$')\r\n errorMsgPassword = $('#validation-messages').data 'msg-rule-password'\r\n nodePwd.querySelector('input').setAttribute('data-msg-regex', errorMsgPassword)\r\n nodePwd.querySelector('input').setAttribute('name', 'pwd')\r\n\r\n nodeUserName = $grid.editor.field('username').node()\r\n nodeUserName.querySelector('input').setAttribute('data-rule-regex', '^[a-zA-Z0-9_?!%&=\\\\-+]+$')\r\n errorMsgUsername = $('#validation-messages').data 'msg-rule-username'\r\n nodeUserName.querySelector('input').setAttribute('data-msg-regex', errorMsgUsername)\r\n nodeUserName.querySelector('input').setAttribute('name', 'login')\r\n\r\n if planType == '3' && useExternalService && hasAdminRights# external type\r\n nodeExtPwd = $grid.editor.field('externalPassword').node()\r\n nodeExtPwd.querySelector('input').setAttribute('data-rule-regex', '^[a-zA-Z0-9_?!%&=\\\\-+]+$')\r\n nodeExtPwd.querySelector('input').setAttribute('data-msg-regex', errorMsgPassword)\r\n nodeExtPwd.querySelector('input').setAttribute('name', 'pwd')\r\n\r\n nodeExtUserName = $grid.editor.field('externalUsername').node()\r\n nodeExtUserName.querySelector('input').setAttribute('data-rule-regex', '^[a-zA-Z0-9_?!%&=\\\\-+]+$')\r\n nodeExtUserName.querySelector('input').setAttribute('data-msg-regex', errorMsgUsername)\r\n nodeExtUserName.querySelector('input').setAttribute('name', 'login')\r\n\r\n $grid.editor.field('externalUsername').node().querySelector('input').setAttribute('data-rule-required', true)\r\n $grid.editor.field('externalUsername').node().querySelector('input').setAttribute('name', 'externalUsername')\r\n $grid.editor.field('externalUsername').node().querySelector('input').setAttribute('data-msg-required', requiredMsg)\r\n\r\n $grid.editor.field('externalPassword').node().querySelector('input').setAttribute('data-rule-required', true)\r\n $grid.editor.field('externalPassword').node().querySelector('input').setAttribute('name', 'externalPassword')\r\n $grid.editor.field('externalPassword').node().querySelector('input').setAttribute('data-msg-required', requiredMsg)\r\n\r\n $grid.editor.field('username').node().querySelector('input').setAttribute('data-rule-required', true)\r\n $grid.editor.field('username').node().querySelector('input').setAttribute('name', 'username')\r\n $grid.editor.field('username').node().querySelector('input').setAttribute('data-msg-required', requiredMsg)\r\n\r\n $grid.editor.field('password').node().querySelector('input').setAttribute('data-rule-required', true)\r\n $grid.editor.field('password').node().querySelector('input').setAttribute('name', 'password')\r\n $grid.editor.field('password').node().querySelector('input').setAttribute('data-msg-required', requiredMsg)\r\n\r\n $grid.editor.field('mountpoint').node().querySelector('input').setAttribute('data-rule-required', true)\r\n $grid.editor.field('mountpoint').node().querySelector('input').setAttribute('name', 'mountpoint')\r\n $grid.editor.field('mountpoint').node().querySelector('input').setAttribute('data-msg-required', requiredMsg)\r\n\r\n $grid.editor.field('serverAddress').node().querySelector('input').setAttribute('data-rule-required', true)\r\n $grid.editor.field('serverAddress').node().querySelector('input').setAttribute('name', 'serverAddress')\r\n $grid.editor.field('serverAddress').node().querySelector('input').setAttribute('data-msg-required', requiredMsg)\r\n\r\n $grid.editor.field('port').node().querySelector('input').setAttribute('data-rule-required', true)\r\n $grid.editor.field('port').node().querySelector('input').setAttribute('name', 'port')\r\n $grid.editor.field('port').node().querySelector('input').setAttribute('data-msg-required', requiredMsg)\r\n\r\n $grid.editor.on 'close', ->\r\n field = $grid.editor.field('fkVehicle')\r\n selectize = field.node().querySelector('select').selectize\r\n selectize.options = allVehicles\r\n selectize.off 'change'\r\n\r\n $grid.editor.on 'preSubmit', (e, o, action) ->\r\n formIsValid = $($grid.editor.dom.form).valid()\r\n unless formIsValid\r\n e.preventDefault()\r\n return false\r\n\r\n promise.then -> checkSaveState()\r\n\r\nsetupRenewLicense = ($ctx) ->\r\n $daysDropdown = $ctx.find('#days-dropdown')\r\n $monthsDropdown = $ctx.find('#months-dropdown')\r\n $yearsDropdown = $ctx.find('#years-dropdown')\r\n $modal = $ctx.find('#renew-license-modal')\r\n $renewLicense = $ctx.find('#renew-license')\r\n $licenseEndDatePicker = $ctx.find('#licenseEnd')\r\n $licenseEventRenewal = $ctx.find('#license-event-renewal')\r\n $licenseEventReactivate = $ctx.find('#license-event-reactivate')\r\n hasAdminRights = JSON.parse($ctx.find('#hasAdminRights').data('value').toLowerCase())\r\n isLicenseExpired = JSON.parse($ctx.find('#isLicenseExpired').data('value').toLowerCase())\r\n isLicenseRunning = JSON.parse($ctx.find('#isLicenseRunning').data('value').toLowerCase())\r\n daysSelect = $daysDropdown.selectize()\r\n monthsSelect = $monthsDropdown.selectize()\r\n yearsSelect = $yearsDropdown.selectize()\r\n\r\n daysSelectize = daysSelect[0].selectize\r\n monthsSelectize = monthsSelect[0].selectize\r\n yearsSelectize = yearsSelect[0].selectize\r\n $licenseEventRenewal.disable()\r\n\r\n if hasAdminRights\r\n if isLicenseExpired\r\n $licenseEventReactivate.enable()\r\n $licenseEventRenewal.disable()\r\n daysSelectize.disable()\r\n monthsSelectize.disable()\r\n yearsSelectize.disable()\r\n else\r\n $licenseEventReactivate.disable()\r\n if isLicenseRunning\r\n daysSelectize.enable()\r\n monthsSelectize.enable()\r\n yearsSelectize.enable()\r\n\r\n daysSelectize.on 'change', ->\r\n if renewalSelected($daysDropdown, $monthsDropdown, $yearsDropdown)\r\n $licenseEventRenewal.enable()\r\n else\r\n $licenseEventRenewal.disable()\r\n\r\n monthsSelectize.on 'change', ->\r\n if renewalSelected($daysDropdown, $monthsDropdown, $yearsDropdown)\r\n $licenseEventRenewal.enable()\r\n else\r\n $licenseEventRenewal.disable()\r\n\r\n yearsSelectize.on 'change', ->\r\n if renewalSelected($daysDropdown, $monthsDropdown, $yearsDropdown)\r\n $licenseEventRenewal.enable()\r\n else\r\n $licenseEventRenewal.disable()\r\n\r\n $modal.on 'shown.bs.modal', ->\r\n question = $('#question').data('question').replace('{days}', $daysDropdown.val())\r\n question = question.replace('{months}', $monthsDropdown.val())\r\n question = question.replace('{years}', $yearsDropdown.val())\r\n $('#question').text question\r\n\r\n $renewLicense.on 'click', ->\r\n $modal.modal('hide')\r\n url = $renewLicense.data 'url'\r\n data =\r\n entityId: $('#EntityId').val()\r\n planId: $('#PlanId').val()\r\n newEndDate: $licenseEndDatePicker.data('DateTimePicker').date().startOf('day')\r\n days: $daysDropdown.val()\r\n months: $monthsDropdown.val()\r\n years: $yearsDropdown.val()\r\n\r\n promise = antiForgeryPost url, data\r\n .then makeRefreshHandler()\r\n .done makeSuccessHandler $renewLicense\r\n .then ->\r\n $grid = $('#license-renewals').staticgrid()[0]\r\n $grid.table.order [0, 'desc']\r\n .draw()\r\n $('.nav.nav-tabs a[href=\"#licenseRenewals\"').trigger('click')\r\n .fail makeErrorHandler $renewLicense\r\n\r\n waitscreen.waitFor promise\r\n\r\nsetupLicenseReactivate = ($ctx) ->\r\n $reactivateLicense = $ctx.find('#reactivate-license')\r\n $licenseBeginDatePicker = $ctx.find('#license-begin')\r\n $licenseEndDatePicker = $ctx.find('#license-end').data('DateTimePicker')\r\n $yearsDropdown = $ctx.find('#years-dropdown-reactivation')\r\n $monthsDropdown = $ctx.find('#months-dropdown-reactivation')\r\n $daysDropdown = $ctx.find('#days-dropdown-reactivation')\r\n daysSelect = $daysDropdown.selectize()\r\n monthsSelect = $monthsDropdown.selectize()\r\n yearsSelect = $yearsDropdown.selectize()\r\n $licenseBeginDatePicker.data('DateTimePicker').minDate(moment().startOf('day'))\r\n $modal = $ctx.find('#reactivation-modal')\r\n $reactivateLicense.disable()\r\n $licenseEndDatePicker.clear()\r\n $reactivateLicense.on 'click', ->\r\n url = $reactivateLicense.data 'url'\r\n data =\r\n entityId: $('#EntityId').val()\r\n planId: $('#PlanId').val()\r\n licenseBegin: $licenseBeginDatePicker.data('DateTimePicker').date().startOf('day')\r\n licenseEnd: $licenseEndDatePicker.date().startOf('day')\r\n years: parseInt $yearsDropdown.val()\r\n months: parseInt $monthsDropdown.val()\r\n days: parseInt $daysDropdown.val()\r\n $modal.modal('hide')\r\n promise = antiForgeryPost url, data\r\n .then makeRefreshHandler()\r\n .done makeSuccessHandler $reactivateLicense\r\n .then ->\r\n $grid = $('#license-renewals').staticgrid()[0]\r\n $grid.table.order [0, 'desc']\r\n .draw()\r\n $('.nav.nav-tabs a[href=\"#licenseRenewals\"').trigger('click')\r\n .fail makeErrorHandler $reactivateLicense\r\n waitscreen.waitFor promise\r\n\r\n $licenseBeginDatePicker.on 'dp.change', ->\r\n years = parseInt $yearsDropdown.val()\r\n months = parseInt $monthsDropdown.val()\r\n days = parseInt $daysDropdown.val()\r\n selectedDate = $licenseBeginDatePicker.data('DateTimePicker').date()\r\n if selectedDate\r\n daysSelect.enable()\r\n monthsSelect.enable()\r\n yearsSelect.enable()\r\n\r\n $licenseEndDatePicker.date selectedDate.add(years, 'years').add(months, 'months').add(days, 'days')\r\n if renewalSelected($daysDropdown, $monthsDropdown, $yearsDropdown)\r\n $reactivateLicense.enable()\r\n else\r\n $reactivateLicense.disable()\r\n $licenseEndDatePicker.clear()\r\n else\r\n $reactivateLicense.disable()\r\n daysSelect.disable()\r\n monthsSelect.disable()\r\n yearsSelect.disable()\r\n $licenseEndDatePicker.clear()\r\n\r\n yearsSelect.on 'change', ->\r\n years = parseInt $yearsDropdown.val()\r\n months = parseInt $monthsDropdown.val()\r\n days = parseInt $daysDropdown.val()\r\n\r\n selectedDate = $licenseBeginDatePicker.data('DateTimePicker').date()\r\n if selectedDate\r\n $licenseEndDatePicker.date selectedDate.add(years, 'years').add(months, 'months').add(days, 'days')\r\n if renewalSelected($daysDropdown, $monthsDropdown, $yearsDropdown)\r\n $reactivateLicense.enable()\r\n else\r\n $reactivateLicense.disable()\r\n $licenseEndDatePicker.clear()\r\n else\r\n $reactivateLicense.disable()\r\n $licenseEndDatePicker.clear()\r\n\r\n monthsSelect.on 'change', ->\r\n years = parseInt $yearsDropdown.val()\r\n months = parseInt $monthsDropdown.val()\r\n days = parseInt $daysDropdown.val()\r\n\r\n selectedDate = $licenseBeginDatePicker.data('DateTimePicker').date()\r\n if selectedDate\r\n $licenseEndDatePicker.date selectedDate.add(years, 'years').add(months, 'months').add(days, 'days')\r\n if renewalSelected($daysDropdown, $monthsDropdown, $yearsDropdown)\r\n $reactivateLicense.enable()\r\n else\r\n $reactivateLicense.disable()\r\n $licenseEndDatePicker.clear()\r\n else\r\n $reactivateLicense.disable()\r\n $licenseEndDatePicker.clear()\r\n\r\n daysSelect.on 'change', ->\r\n years = parseInt $yearsDropdown.val()\r\n months = parseInt $monthsDropdown.val()\r\n days = parseInt $daysDropdown.val()\r\n\r\n selectedDate = $licenseBeginDatePicker.data('DateTimePicker').date()\r\n if selectedDate\r\n $licenseEndDatePicker.date selectedDate.add(years, 'years').add(months, 'months').add(days, 'days')\r\n if renewalSelected($daysDropdown, $monthsDropdown, $yearsDropdown)\r\n $reactivateLicense.enable()\r\n else\r\n $reactivateLicense.disable()\r\n $licenseEndDatePicker.clear()\r\n else\r\n $reactivateLicense.disable()\r\n $licenseEndDatePicker.clear()\r\n\r\nsetupUpdateLicenseStart = ($ctx) ->\r\n $updateLicense = $ctx.find('#update-license')\r\n $licenseBeginDatePicker = $ctx.find('#new-license-begin')\r\n\r\n defaultDate = $licenseBeginDatePicker.data('DateTimePicker').date()\r\n $licenseEndDatePicker = $ctx.find('#new-license-end')\r\n $modal = $ctx.find('#set-new-datetime')\r\n\r\n $updateLicense.on 'click', ->\r\n currentDate = $licenseBeginDatePicker.data('DateTimePicker').date()\r\n if defaultDate.isSame(currentDate)\r\n notifications.warning $updateLicense.data 'start-date-not-changed-message'\r\n return\r\n url = $updateLicense.data 'url'\r\n data =\r\n entityId: $('#EntityId').val()\r\n planId: $('#PlanId').val()\r\n licenseBegin: $licenseBeginDatePicker.data('DateTimePicker').date().startOf('day')\r\n licenseEnd: $licenseEndDatePicker.data('DateTimePicker').date().startOf('day')\r\n $modal.modal('hide')\r\n promise = antiForgeryPost url, data\r\n .then makeRefreshHandler()\r\n .done makeSuccessHandler $updateLicense\r\n .then ->\r\n $grid = $('#license-renewals').staticgrid()[0]\r\n $grid.table.order [0, 'desc']\r\n .draw()\r\n $('.nav.nav-tabs a[href=\"#licenseRenewals\"').trigger('click')\r\n .fail makeErrorHandler $updateLicense\r\n waitscreen.waitFor promise\r\n\r\n $licenseBeginDatePicker.on 'dp.change', ->\r\n selectedDate = $licenseBeginDatePicker.data('DateTimePicker').date()\r\n if selectedDate\r\n years = parseInt $('#runtime').data('years')\r\n months = parseInt $('#runtime').data('months')\r\n days = parseInt $('#runtime').data('days')\r\n\r\n $licenseEndDatePicker.data('DateTimePicker').date selectedDate.add(years, 'years').add(months, 'months').add(days, 'days')\r\n $updateLicense.enable()\r\n else\r\n $updateLicense.disable()\r\n\r\nsetupLicenseRenewalsTab = ($ctx) ->\r\n $grid = $('#license-renewals').staticgrid()[0]\r\n $grid.table.order [0, 'desc']\r\n .draw()\r\n\r\nregister('App.RTK.Administration.SetupCustomerDetails', setupCustomerDetails)\r\nregister('App.RTK.Administration.SetupMyCustomers', setupMyCustomers)\r\nregister('App.RTK.Administration.SetupDeleteRTKPlan', setupDeleteRTKPlan)\r\nregister('App.RTK.Administration.SetupLogins', setupLogins)\r\nregister('App.RTK.Administration.SetupRenewLicense', setupRenewLicense)\r\nregister('App.RTK.Administration.SetupUpdateLicenseStart', setupUpdateLicenseStart)\r\nregister('App.RTK.Administration.SetupLicenseReactivate', setupLicenseReactivate)\r\nregister('App.RTK.Administration.SetupLicenseRenewalsTab', setupLicenseRenewalsTab)\r\n","{register} = require 'src/js/infrastructure/setup-registry'\r\n{getByName} = require 'src/coffee/controls/map'\r\n\r\n{RTKTelematicPlugin} = require 'src/coffee/areas/rtk/rtk-telematic-plugin'\r\n{RTKMachineToolTipInfoPlugin} = require 'src/coffee/areas/rtk/rtk-machine-tool-tip-info-plugin'\r\n\r\ntelematicSetup = ($ctx, promise) ->\r\n layerName = $ctx.find('#update-positions').data 'layer-name'\r\n map = getByName 'telematic-details', $ctx\r\n map.registerPlugin new RTKTelematicPlugin($ctx, layerName, promise)\r\n map.registerPlugin new RTKMachineToolTipInfoPlugin($ctx, layerName, promise)\r\n\r\nregister('App.RTK.Evaluation.Setup', telematicSetup)\r\n","{Plugin} = require './base'\r\n\r\nOverlay = require('ol/Overlay').default\r\n{transform, transformExtent} = require('ol/proj')\r\n\r\n{config} = require 'src/js/infrastructure'\r\n\r\nclass LocationSearchPlugin extends Plugin\r\n constructor: (@$ctx, @withPointerOvelay = true) ->\r\n init: ->\r\n @searchUrl = \"https://dev.virtualearth.net/REST/v1/Locations?o=json&key=#{config.bingApiKey}&q=\"\r\n $button = @$ctx.find '#mapSearchButton'\r\n $button.on 'click', @startSearch\r\n @$input = @$ctx.find('#mapSearchInput')\r\n @$input.keyup @searchOnEnter\r\n if @withPointerOvelay\r\n @positionOverlay = @createOverlay()\r\n @map.addOverlay @positionOverlay\r\n\r\n createOverlay: () ->\r\n $positionDiv = $('
    ')\r\n $positionDiv.hide()\r\n $positionIcon = $('').addClass('fa fa-map-marker fa-2x text-danger mapLokationMarker').attr('id', 'mapPosition')\r\n $positionDiv.append $positionIcon\r\n mapTarget = @map.getTarget()\r\n $(mapTarget).append($positionDiv)\r\n overlayOptions =\r\n element: $(mapTarget).find('i#mapPosition')[0]\r\n positioning: 'bottom-center'\r\n stopEvent: false\r\n return new Overlay(overlayOptions)\r\n\r\n searchOnEnter: (event) =>\r\n if event.keyCode is 13\r\n @startSearch()\r\n\r\n startSearch: () =>\r\n searchString = @$input.val()\r\n @search(searchString)\r\n\r\n search: (searchString) =>\r\n error = (data, textStatus, errorThrown ) ->\r\n toastr.error \"\", \"Couldn't access Bingmaps!\"\r\n if searchString\r\n ajaxData =\r\n type: 'POST'\r\n contentType: 'application/json; charset=utf-8'\r\n url: @searchUrl+searchString\r\n success: @searchCallback\r\n error: error,\r\n dataType: \"jsonp\",\r\n jsonp: \"jsonp\"\r\n\r\n $.ajax ajaxData\r\n\r\n searchCallback: (data) =>\r\n if data.statusCode isnt 200\r\n toastr.error \"\", \"Bing Server Error\"\r\n return\r\n if !data.resourceSets or data.resourceSets[0].estimatedTotal is 0\r\n toastr.warning \"\", \"No Location Found!\"\r\n return\r\n @goToFoundExtent data\r\n if @withPointerOvelay\r\n @showFoundLocation data\r\n\r\n goToFoundExtent: (data) =>\r\n extent_WGS84 = @transformBingBBoxToOlExtent data.resourceSets[0].resources[0].bbox\r\n extent_900913 = transformExtent extent_WGS84, 'EPSG:4326', 'EPSG:900913'\r\n view = @map.getView()\r\n view.fit extent_900913\r\n\r\n transformBingBBoxToOlExtent : (bbox) =>\r\n olExtent = []\r\n olExtent[0] = bbox[1]\r\n olExtent[1] = bbox[0]\r\n olExtent[2] = bbox[3]\r\n olExtent[3] = bbox[2]\r\n return olExtent\r\n\r\n transformBingCoordinatesToOlCoordinates: (bingCoordinates) =>\r\n olCoordinates =[]\r\n olCoordinates[0] = bingCoordinates[1]\r\n olCoordinates[1] = bingCoordinates[0]\r\n return olCoordinates\r\n\r\n showFoundLocation: (data) =>\r\n location_WGS84 = @transformBingCoordinatesToOlCoordinates data.resourceSets[0].resources[0].point.coordinates\r\n location_900913 = transform location_WGS84, 'EPSG:4326', 'EPSG:900913'\r\n @positionOverlay.setPosition location_900913\r\n\r\nmodule.exports = {\r\n LocationSearchPlugin\r\n}\r\n\r\nmodule.exports.__esModule = true\r\nmodule.exports.default = LocationSearchPlugin\r\n","{register} = require 'src/js/infrastructure/setup-registry'\r\n{get, antiForgeryPost} = require 'src/coffee/infrastructure/ajax'\r\n{makeReplaceHandler, makeRefreshHandler} = require 'src/coffee/helpers/async/fragment-loading'\r\n\r\n{makeSuccessHandler, makeErrorHandler} = require 'src/coffee/helpers/async/notifications'\r\n{waitscreen} = require 'src/js/infrastructure'\r\n\r\n{getByName} = require 'src/coffee/controls/map'\r\n\r\npostionSaveSetup = ($ctx) ->\r\n $saveButton = $ctx.find '#mapSaveButton'\r\n $saveButton.on 'click', savePosition\r\n numberOfAllowedPosChangesPerYear = parseInt $ctx.find('#NumberOfAllowedPosChangesPerYear').val()\r\n numberOfPosChangesPerYear = parseInt $ctx.find('#NumberOfPosChangesPerYear').val()\r\n\r\n if numberOfPosChangesPerYear >= numberOfAllowedPosChangesPerYear\r\n $saveButton.disable()\r\nsavePosition = (e) ->\r\n $saveBtn = $ e.currentTarget\r\n map = getByName 'RTKMap'\r\n data =\r\n states: map.webgis.getModifiedGeometriesWKT()\r\n planId: map.layerManager.layers.webgis()[0].get 'uid'\r\n entityId: $('#entityId').val()\r\n entityName: $('#entityName').val()\r\n planType: $('#planType').val()\r\n\r\n url = $saveBtn.data 'url'\r\n\r\n promise = antiForgeryPost url, data\r\n .then makeRefreshHandler()\r\n .then makeSuccessHandler $saveBtn\r\n .fail makeErrorHandler $saveBtn\r\n waitscreen.waitFor promise\r\n\r\nsetupPlanLoginGrid = ($ctx) ->\r\n grid = $ctx.find('#RTKLoginsGrid').staticgrid()[0]\r\n editor = grid.editor\r\n editor.on 'initEdit', ->\r\n editor.show()\r\n editor.hide('username')\r\n editor.hide('mountpoint')\r\n editor.hide('password')\r\n editor.hide('port')\r\n editor.hide('serverAddress')\r\n\r\n grid.table.on 'select', ( e, dt, type, indexes) ->\r\n $('#openPasswordChangeModal').enable()\r\n uid = grid.table.rows(indexes).data().pluck('uid')[0]\r\n $('a#changePasswordButton').data 'loginId', uid\r\n\r\n grid.table.on 'deselect', ->\r\n $('#openPasswordChangeModal').disable()\r\n\r\n $('#openPasswordChangeModal').disable()\r\n\r\n editor.on 'postEdit', savelocalBaseLogins\r\n\r\n availableVehicles = JSON.parse $ctx.find('#available-vehicles').html()\r\n\r\n editor.on 'preOpen', (e, mode, action) ->\r\n field = editor.field('fkVehicle')\r\n selectize = field.node().querySelector('select').selectize\r\n selected = selectize.options[selectize.items[0]]\r\n selectize.clear(true)\r\n selectize.clearOptions()\r\n\r\n if selected\r\n selectize.addOption(selected)\r\n selectize.addItem(selected.value, true)\r\n\r\n for vehicle in availableVehicles\r\n selectize.addOption(vehicle)\r\n selectize.refreshOptions(false)\r\n\r\nsavelocalBaseLogins = ->\r\n saveText = $('#saveSuccess').val()\r\n saveError = $('#saveError').val()\r\n url = $('#save-url').data 'url'\r\n grid = $('#RTKLoginsGrid').staticgrid()[0]\r\n data =\r\n logins: grid.state.changes()\r\n planType: $('#PlanType').val()\r\n planId: $('#PlanId').val()\r\n entityName: $('#EntityName').val()\r\n\r\n promise = antiForgeryPost url, data\r\n .then makeRefreshHandler()\r\n .then grid.state.reset()\r\n .done makeSuccessHandler saveText\r\n .fail makeErrorHandler saveError\r\n waitscreen.waitFor promise\r\n\r\n\r\nloginsDetailSetup = ($ctx) ->\r\n $detailButton = $ctx.find('#detail')\r\n url = $detailButton.data 'url'\r\n $grid = $ctx.find('#logins-grid')\r\n\r\n table = $grid.staticgrid()[0].table\r\n\r\n $grid.on 'change.selection', ->\r\n if table.rows('.selected').data().toArray().length > 0\r\n $detailButton.enable()\r\n else\r\n $detailButton.disable()\r\n $detailButton.on 'click', ->\r\n data =\r\n entityName: $('#EntityName').val()\r\n loginId: table.row('.selected').data().uid\r\n planId: table.row('.selected').data().fkrtK_Plan\r\n promise = get url, data\r\n .done makeReplaceHandler $('#content')\r\n waitscreen.waitFor promise\r\n\r\nloginListSetup = ($ctx, promise) ->\r\n availableVehicles = JSON.parse $ctx.find('#available-vehicles').html()\r\n\r\n $selects = $ctx.find('select[name=FKVehicle]')\r\n selectizes = $selects.toArray().map((x) -> x.selectize)\r\n\r\n updateLastSelected = (selectize) ->\r\n selected = selectize.options[selectize.items[0]]\r\n selectize.lastSelected = selected\r\n\r\n for selectize in selectizes\r\n do (selectize) ->\r\n updateLastSelected(selectize)\r\n\r\n selectize.on 'change', (value) ->\r\n if selectize.lastSelected\r\n availableVehicles.push(selectize.lastSelected)\r\n updateLastSelected(selectize)\r\n\r\n availableVehicles = availableVehicles.filter((x) -> x.value isnt value)\r\n\r\n updateSelects()\r\n\r\n updateSelects = ->\r\n for selectize in selectizes\r\n selected = selectize.options[selectize.items[0]]\r\n selectize.clear(true)\r\n selectize.clearOptions()\r\n\r\n if selected\r\n selectize.addOption(selected)\r\n selectize.addItem(selected.value, true)\r\n\r\n for vehicle in availableVehicles\r\n selectize.addOption(vehicle)\r\n selectize.refreshOptions(false)\r\n\r\n promise.then updateSelects\r\n\r\n\r\nregister('App.RTK.Plans.SetupPlanLoginGrid', setupPlanLoginGrid)\r\nregister('App.RTK.Plans.PostionSaveSetup', postionSaveSetup)\r\nregister('App.RTK.Plans.LoginsDetailSetup', loginsDetailSetup)\r\nregister('App.RTK.Plans.LoginListSetup', loginListSetup)\r\n","{register} = require 'src/js/infrastructure/setup-registry'\r\n{antiForgeryPost} = require 'src/coffee/infrastructure/ajax'\r\n\r\n{makeErrorHandler} = require 'src/coffee/helpers/async/notifications'\r\n{waitscreen} = require 'src/js/infrastructure'\r\n\r\nsetup = ($ctx) ->\r\n $startDatePicker = $ctx.find('#start-date-picker')\r\n $startDatePicker.datetimepicker()\r\n\r\n $endDatePicker = $ctx.find('#end-date-picker')\r\n $endDatePicker.datetimepicker()\r\n # useCurrent : false #Important! See issue #1075\r\n\r\n startDate = $startDatePicker.data('DateTimePicker').date()\r\n endDate = $endDatePicker.data('DateTimePicker').date()\r\n\r\n # set today as the maximum for both dates\r\n $startDatePicker.data('DateTimePicker').maxDate(endDate)\r\n $endDatePicker.data('DateTimePicker').maxDate(endDate).minDate(startDate)\r\n $updateOverviewBtn = $ctx.find('#update-overview')\r\n\r\n $updateOverviewBtn.on 'click', -> getUtilization $('body')\r\n $startDatePicker.on 'dp.change', (e) ->\r\n $endDatePicker.data('DateTimePicker').maxDate(moment()).minDate(e.date)\r\n startDate = $startDatePicker.data('DateTimePicker').date()\r\n endDate = $endDatePicker.data('DateTimePicker').date()\r\n if startDate and endDate\r\n $updateOverviewBtn.enable()\r\n else\r\n $updateOverviewBtn.disable()\r\n\r\n $endDatePicker.on 'dp.change', (e) ->\r\n $startDatePicker.data('DateTimePicker').maxDate(e.date)\r\n $endDatePicker.data('DateTimePicker').maxDate(moment())\r\n # maxdate can't be higher than today, because the start date picker has today as the maximum\r\n startDate = $startDatePicker.data('DateTimePicker').date()\r\n endDate = $endDatePicker.data('DateTimePicker').date()\r\n if startDate and endDate\r\n $updateOverviewBtn.enable()\r\n else\r\n $updateOverviewBtn.disable()\r\n\r\n $table = $ctx.find('#utilization-grid')\r\n $table.staticgrid()[0].table.column(0).order('desc').draw()\r\n $table.on 'change.selection', gridRowSelectionChanged\r\n\r\n $detailsModal = $ctx.find('#utilization-details-modal')\r\n $detailsModal.on 'shown.bs.modal', refreshDetailsModal\r\n\r\n getUtilization $ctx\r\n\r\n\r\ngridRowSelectionChanged = (event) ->\r\n $detailsButton = $('#details-button')\r\n\r\n if event.rows.length > 0\r\n $detailsButton.parent().popover('destroy')\r\n $detailsButton.enable()\r\n else\r\n $detailsButton.parent().popover('enable')\r\n $detailsButton.disable()\r\n\r\n\r\nrefreshDetailsModal = ->\r\n selectedRow = $('#utilization-grid').staticgrid()[0].state.rows('.selected')[0]\r\n $detailsModal = $('#utilization-details-modal')\r\n\r\n # expected to get a moment here, but it was a string\r\n title = $detailsModal.data('title').replace '{Date}', moment(selectedRow.date).format('L')\r\n $detailsModal.find('h4.modal-title').text title\r\n\r\n detailsGrid = $('#utilization-details-grid').staticgrid()[0]\r\n detailsGrid.table.rows().remove()\r\n detailsGrid.table.rows.add(selectedRow.details).draw()\r\n detailsGrid.table.columns.adjust()\r\n\r\ngetUtilization = ($ctx) ->\r\n $parameters = $ctx.find '#utilization-parameters'\r\n\r\n url = $parameters.data 'url'\r\n data =\r\n startDate: $ctx.find('#start-date-picker').data('DateTimePicker').date()\r\n endDate: $ctx.find('#end-date-picker').data('DateTimePicker').date()\r\n\r\n promise = antiForgeryPost url, data, $ctx\r\n .done (utilization) ->\r\n refreshUtilizationGrid $('body'), utilization\r\n .fail makeErrorHandler $parameters\r\n waitscreen.waitFor promise\r\n\r\nrefreshUtilizationGrid = ($ctx, utilization) ->\r\n grid = $ctx.find('#utilization-grid').staticgrid()[0]\r\n grid.table.rows().deselect()\r\n grid.table.rows().remove()\r\n\r\n # prepare the ajax response to work with both grids\r\n for row in utilization\r\n row.date = moment row.date\r\n for detail in row.details\r\n detail.logon = moment detail.logon\r\n detail.logoff = moment detail.logoff\r\n\r\n grid.table.rows.add(utilization).draw()\r\n grid.table.columns.adjust()\r\n\r\nregister('App.RTK.Administration.VRSLoginManagement.UtilizationOverview.Setup', setup)\r\n","require './my-licenses'\r\nrequire './radius-map-plugin'\r\nrequire './rtk'\r\nrequire './rtk-administration'\r\nrequire './rtk-evaluation-setup'\r\nrequire './rtk-machine-path-map-plugin'\r\nrequire './rtk-machine-path-map-setup'\r\nrequire './rtk-machine-tool-tip-info-plugin'\r\nrequire './rtk-plans'\r\nrequire './rtk-telematic-plugin'\r\nrequire './vrs-login-management'\r\nrequire './vrs-utilization-overview'\r\nrequire './my-licenses-for-entity-setup'\r\n","{register} = require 'src/js/infrastructure/setup-registry'\r\n\r\nsetup = ($ctx, promise) ->\r\n $grid = $ctx.find('#licences').staticgrid()[0]\r\n entityId = $ctx.find('#EntityId').val()\r\n $grid.options.ajax.payload = -> {entityId}\r\n\r\nregister('App.RTK.Administration.MyLicensesForEntity.Setup', setup)","{register} = require 'src/js/infrastructure/setup-registry'\r\n{LocationSearchPlugin} = require 'src/coffee/controls/map/plugins/location-search'\r\n{RadiusPlugin} = require 'src/coffee/areas/rtk/radius-map-plugin'\r\n{findNode, findParent} = require 'src/coffee/controls/tree/helpers'\r\n{getByName} = require 'src/coffee/controls/map'\r\n\r\nindexSetup = ($ctx, promise) ->\r\n companyId = $ctx.find('#defaultEntityId').val()\r\n unless companyId\r\n return\r\n tree = $ctx.find '.easytree'\r\n .data 'easytree'\r\n nodes = tree.getAllNodes()\r\n node = findNode nodes, (n) -> n.data.uid is companyId\r\n if node\r\n expandNodeId = node.id\r\n\r\n loop\r\n parent = findParent nodes, expandNodeId\r\n break if parent is null\r\n parent.isExpanded = true\r\n expandNodeId = parent.id\r\n\r\n tree.rebuildTree()\r\n if node\r\n tree.activateNode node.id\r\n promise.done ->\r\n $ \"a[href='#{node.href}']\"\r\n .click()\r\n\r\n\r\nmapSetup = ($ctx) ->\r\n map = getByName 'RTKMap', $ctx\r\n\r\n layer = map.layerManager.layers.webgis()[0] or map.layerManager.layers.vector()[0]\r\n map.registerPlugin new LocationSearchPlugin($ctx, false)\r\n map.registerPlugin new RadiusPlugin layer\r\n\r\n if map.layerManager.layers.webgis()[0]\r\n map.layerManager.layers.webgis()[0].getSource().on 'changefeature', updateLatLon\r\n map.layerManager.layers.webgis()[0].getSource().on 'addfeature', updateLatLon\r\n map.layerManager.layers.webgis()[0].getSource().on 'removefeature', clearLatLon\r\n\r\n $updateBtn = $ctx.find('#update-position')\r\n $updateBtn.on 'click', updatePosition\r\n $lon = $ctx.find('#longitude')\r\n $lat = $ctx.find('#latitude')\r\n\r\n $lon.on 'input', ->\r\n if $lon.val().length is 0\r\n $updateBtn.disable()\r\n else\r\n $updateBtn.enable()\r\n $lat.on 'input', ->\r\n if $lat.val().length is 0\r\n $updateBtn.disable()\r\n else\r\n $updateBtn.enable()\r\n\r\nupdatePosition = ->\r\n radius = $('#radius').val()\r\n parser = Globalize.numberParser()\r\n longitude = parser($('#longitude').val())\r\n latitude = parser($('#latitude').val())\r\n\r\n map = getByName 'RTKMap'\r\n unless map\r\n return\r\n features = map.layerManager.layers.webgis()[0].getSource().getFeatures()\r\n unless features.length isnt 0\r\n return\r\n\r\n geo = features[0].getGeometry()\r\n geo.setCoordinates([longitude, latitude])\r\n geo.transform('EPSG:4326', 'EPSG:900913')\r\n\r\n features[0].set 'radius', radius\r\n radiusPlugin = map.plugins[map.plugins.length - 1]\r\n radiusPlugin.pointMoved\r\n feature: features[0]\r\n view = map.map.getView()\r\n view.setCenter(geo.getCoordinates())\r\n extent = geo.getExtent()\r\n parsedRadius = parser(radius)\r\n extent[0] = extent[0] - parsedRadius * 1000\r\n extent[1] = extent[1] - parsedRadius * 1000\r\n extent[2] = extent[2] + parsedRadius * 1000\r\n extent[3] = extent[3] + parsedRadius * 1000\r\n map.changeDefaultExtent extent\r\n\r\nclearLatLon = ->\r\n $('#longitude').val(\"\")\r\n $('#latitude').val(\"\")\r\n\r\nupdateLatLon = (evt) ->\r\n center = evt.feature.getGeometry().clone()\r\n center.transform('EPSG:900913', 'EPSG:4326')\r\n coords = center.getCoordinates()\r\n $('#longitude').val(Globalize.formatNumber(coords[0], {minimumFractionDigits: 15}))\r\n $('#latitude').val(Globalize.formatNumber(coords[1], {minimumFractionDigits: 15}))\r\n\r\nregister('App.RTK.IndexSetup', indexSetup)\r\nregister('App.RTK.MapSetup', mapSetup)\r\n","/**\n * @module ol/style/IconImage\n */\n\nimport {createCanvasContext2D} from '../dom.js';\nimport {listenOnce, unlistenByKey} from '../events.js';\nimport EventTarget from '../events/Target.js';\nimport EventType from '../events/EventType.js';\nimport ImageState from '../ImageState.js';\nimport {shared as iconImageCache} from './IconImageCache.js';\n\nvar IconImage = /*@__PURE__*/(function (EventTarget) {\n function IconImage(image, src, size, crossOrigin, imageState, color) {\n\n EventTarget.call(this);\n\n /**\n * @private\n * @type {HTMLImageElement|HTMLCanvasElement}\n */\n this.hitDetectionImage_ = null;\n\n /**\n * @private\n * @type {HTMLImageElement|HTMLCanvasElement}\n */\n this.image_ = !image ? new Image() : image;\n\n if (crossOrigin !== null) {\n /** @type {HTMLImageElement} */ (this.image_).crossOrigin = crossOrigin;\n }\n\n /**\n * @private\n * @type {HTMLCanvasElement}\n */\n this.canvas_ = color ?\n /** @type {HTMLCanvasElement} */ (document.createElement('canvas')) :\n null;\n\n /**\n * @private\n * @type {import(\"../color.js\").Color}\n */\n this.color_ = color;\n\n /**\n * @private\n * @type {Array}\n */\n this.imageListenerKeys_ = null;\n\n /**\n * @private\n * @type {import(\"../ImageState.js\").default}\n */\n this.imageState_ = imageState;\n\n /**\n * @private\n * @type {import(\"../size.js\").Size}\n */\n this.size_ = size;\n\n /**\n * @private\n * @type {string|undefined}\n */\n this.src_ = src;\n\n /**\n * @private\n * @type {boolean|undefined}\n */\n this.tainted_;\n\n }\n\n if ( EventTarget ) IconImage.__proto__ = EventTarget;\n IconImage.prototype = Object.create( EventTarget && EventTarget.prototype );\n IconImage.prototype.constructor = IconImage;\n\n /**\n * @private\n * @return {boolean} The image canvas is tainted.\n */\n IconImage.prototype.isTainted_ = function isTainted_ () {\n if (this.tainted_ === undefined && this.imageState_ === ImageState.LOADED) {\n this.tainted_ = false;\n var context = createCanvasContext2D(1, 1);\n try {\n context.drawImage(this.image_, 0, 0);\n context.getImageData(0, 0, 1, 1);\n } catch (e) {\n this.tainted_ = true;\n }\n }\n return this.tainted_ === true;\n };\n\n /**\n * @private\n */\n IconImage.prototype.dispatchChangeEvent_ = function dispatchChangeEvent_ () {\n this.dispatchEvent(EventType.CHANGE);\n };\n\n /**\n * @private\n */\n IconImage.prototype.handleImageError_ = function handleImageError_ () {\n this.imageState_ = ImageState.ERROR;\n this.unlistenImage_();\n this.dispatchChangeEvent_();\n };\n\n /**\n * @private\n */\n IconImage.prototype.handleImageLoad_ = function handleImageLoad_ () {\n this.imageState_ = ImageState.LOADED;\n if (this.size_) {\n this.image_.width = this.size_[0];\n this.image_.height = this.size_[1];\n }\n this.size_ = [this.image_.width, this.image_.height];\n this.unlistenImage_();\n this.replaceColor_();\n this.dispatchChangeEvent_();\n };\n\n /**\n * @param {number} pixelRatio Pixel ratio.\n * @return {HTMLImageElement|HTMLCanvasElement} Image or Canvas element.\n */\n IconImage.prototype.getImage = function getImage (pixelRatio) {\n return this.canvas_ ? this.canvas_ : this.image_;\n };\n\n /**\n * @return {import(\"../ImageState.js\").default} Image state.\n */\n IconImage.prototype.getImageState = function getImageState () {\n return this.imageState_;\n };\n\n /**\n * @param {number} pixelRatio Pixel ratio.\n * @return {HTMLImageElement|HTMLCanvasElement} Image element.\n */\n IconImage.prototype.getHitDetectionImage = function getHitDetectionImage (pixelRatio) {\n if (!this.hitDetectionImage_) {\n if (this.isTainted_()) {\n var width = this.size_[0];\n var height = this.size_[1];\n var context = createCanvasContext2D(width, height);\n context.fillRect(0, 0, width, height);\n this.hitDetectionImage_ = context.canvas;\n } else {\n this.hitDetectionImage_ = this.image_;\n }\n }\n return this.hitDetectionImage_;\n };\n\n /**\n * @return {import(\"../size.js\").Size} Image size.\n */\n IconImage.prototype.getSize = function getSize () {\n return this.size_;\n };\n\n /**\n * @return {string|undefined} Image src.\n */\n IconImage.prototype.getSrc = function getSrc () {\n return this.src_;\n };\n\n /**\n * Load not yet loaded URI.\n */\n IconImage.prototype.load = function load () {\n if (this.imageState_ == ImageState.IDLE) {\n this.imageState_ = ImageState.LOADING;\n this.imageListenerKeys_ = [\n listenOnce(this.image_, EventType.ERROR,\n this.handleImageError_, this),\n listenOnce(this.image_, EventType.LOAD,\n this.handleImageLoad_, this)\n ];\n try {\n /** @type {HTMLImageElement} */ (this.image_).src = this.src_;\n } catch (e) {\n this.handleImageError_();\n }\n }\n };\n\n /**\n * @private\n */\n IconImage.prototype.replaceColor_ = function replaceColor_ () {\n if (!this.color_ || this.isTainted_()) {\n return;\n }\n\n this.canvas_.width = this.image_.width;\n this.canvas_.height = this.image_.height;\n\n var ctx = this.canvas_.getContext('2d');\n ctx.drawImage(this.image_, 0, 0);\n\n var imgData = ctx.getImageData(0, 0, this.image_.width, this.image_.height);\n var data = imgData.data;\n var r = this.color_[0] / 255.0;\n var g = this.color_[1] / 255.0;\n var b = this.color_[2] / 255.0;\n\n for (var i = 0, ii = data.length; i < ii; i += 4) {\n data[i] *= r;\n data[i + 1] *= g;\n data[i + 2] *= b;\n }\n ctx.putImageData(imgData, 0, 0);\n };\n\n /**\n * Discards event handlers which listen for load completion or errors.\n *\n * @private\n */\n IconImage.prototype.unlistenImage_ = function unlistenImage_ () {\n this.imageListenerKeys_.forEach(unlistenByKey);\n this.imageListenerKeys_ = null;\n };\n\n return IconImage;\n}(EventTarget));\n\n\n/**\n * @param {HTMLImageElement|HTMLCanvasElement} image Image.\n * @param {string} src Src.\n * @param {import(\"../size.js\").Size} size Size.\n * @param {?string} crossOrigin Cross origin.\n * @param {import(\"../ImageState.js\").default} imageState Image state.\n * @param {import(\"../color.js\").Color} color Color.\n * @return {IconImage} Icon image.\n */\nexport function get(image, src, size, crossOrigin, imageState, color) {\n var iconImage = iconImageCache.get(src, crossOrigin, color);\n if (!iconImage) {\n iconImage = new IconImage(image, src, size, crossOrigin, imageState, color);\n iconImageCache.set(src, crossOrigin, color, iconImage);\n }\n return iconImage;\n}\n\n\nexport default IconImage;\n\n//# sourceMappingURL=IconImage.js.map","/**\n * @module ol/style/Icon\n */\nimport {getUid} from '../util.js';\nimport ImageState from '../ImageState.js';\nimport {assert} from '../asserts.js';\nimport {asArray} from '../color.js';\nimport {listen, unlisten} from '../events.js';\nimport EventType from '../events/EventType.js';\nimport IconAnchorUnits from './IconAnchorUnits.js';\nimport {get as getIconImage} from './IconImage.js';\nimport IconOrigin from './IconOrigin.js';\nimport ImageStyle from './Image.js';\n\n\n/**\n * @typedef {Object} Options\n * @property {Array} [anchor=[0.5, 0.5]] Anchor. Default value is the icon center.\n * @property {import(\"./IconOrigin.js\").default} [anchorOrigin] Origin of the anchor: `bottom-left`, `bottom-right`,\n * `top-left` or `top-right`. Default is `top-left`.\n * @property {import(\"./IconAnchorUnits.js\").default} [anchorXUnits] Units in which the anchor x value is\n * specified. A value of `'fraction'` indicates the x value is a fraction of the icon. A value of `'pixels'` indicates\n * the x value in pixels. Default is `'fraction'`.\n * @property {import(\"./IconAnchorUnits.js\").default} [anchorYUnits] Units in which the anchor y value is\n * specified. A value of `'fraction'` indicates the y value is a fraction of the icon. A value of `'pixels'` indicates\n * the y value in pixels. Default is `'fraction'`.\n * @property {import(\"../color.js\").Color|string} [color] Color to tint the icon. If not specified,\n * the icon will be left as is.\n * @property {null|string} [crossOrigin] The `crossOrigin` attribute for loaded images. Note that you must provide a\n * `crossOrigin` value if you are using the WebGL renderer or if you want to access pixel data with the Canvas renderer.\n * See https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_enabled_image for more detail.\n * @property {HTMLImageElement|HTMLCanvasElement} [img] Image object for the icon. If the `src` option is not provided then the\n * provided image must already be loaded. And in that case, it is required\n * to provide the size of the image, with the `imgSize` option.\n * @property {Array} [offset=[0, 0]] Offset, which, together with the size and the offset origin, define the\n * sub-rectangle to use from the original icon image.\n * @property {import(\"./IconOrigin.js\").default} [offsetOrigin] Origin of the offset: `bottom-left`, `bottom-right`,\n * `top-left` or `top-right`. Default is `top-left`.\n * @property {number} [opacity=1] Opacity of the icon.\n * @property {number} [scale=1] Scale.\n * @property {boolean} [rotateWithView=false] Whether to rotate the icon with the view.\n * @property {number} [rotation=0] Rotation in radians (positive rotation clockwise).\n * @property {import(\"../size.js\").Size} [size] Icon size in pixel. Can be used together with `offset` to define the\n * sub-rectangle to use from the origin (sprite) icon image.\n * @property {import(\"../size.js\").Size} [imgSize] Image size in pixels. Only required if `img` is set and `src` is not, and\n * for SVG images in Internet Explorer 11. The provided `imgSize` needs to match the actual size of the image.\n * @property {string} [src] Image source URI.\n */\n\n\n/**\n * @classdesc\n * Set icon style for vector features.\n * @api\n */\nvar Icon = /*@__PURE__*/(function (ImageStyle) {\n function Icon(opt_options) {\n var options = opt_options || {};\n\n /**\n * @type {number}\n */\n var opacity = options.opacity !== undefined ? options.opacity : 1;\n\n /**\n * @type {number}\n */\n var rotation = options.rotation !== undefined ? options.rotation : 0;\n\n /**\n * @type {number}\n */\n var scale = options.scale !== undefined ? options.scale : 1;\n\n /**\n * @type {boolean}\n */\n var rotateWithView = options.rotateWithView !== undefined ?\n options.rotateWithView : false;\n\n ImageStyle.call(this, {\n opacity: opacity,\n rotation: rotation,\n scale: scale,\n rotateWithView: rotateWithView\n });\n\n /**\n * @private\n * @type {Array}\n */\n this.anchor_ = options.anchor !== undefined ? options.anchor : [0.5, 0.5];\n\n /**\n * @private\n * @type {Array}\n */\n this.normalizedAnchor_ = null;\n\n /**\n * @private\n * @type {import(\"./IconOrigin.js\").default}\n */\n this.anchorOrigin_ = options.anchorOrigin !== undefined ?\n options.anchorOrigin : IconOrigin.TOP_LEFT;\n\n /**\n * @private\n * @type {import(\"./IconAnchorUnits.js\").default}\n */\n this.anchorXUnits_ = options.anchorXUnits !== undefined ?\n options.anchorXUnits : IconAnchorUnits.FRACTION;\n\n /**\n * @private\n * @type {import(\"./IconAnchorUnits.js\").default}\n */\n this.anchorYUnits_ = options.anchorYUnits !== undefined ?\n options.anchorYUnits : IconAnchorUnits.FRACTION;\n\n /**\n * @private\n * @type {?string}\n */\n this.crossOrigin_ =\n options.crossOrigin !== undefined ? options.crossOrigin : null;\n\n /**\n * @type {HTMLImageElement|HTMLCanvasElement}\n */\n var image = options.img !== undefined ? options.img : null;\n\n /**\n * @type {import(\"../size.js\").Size}\n */\n var imgSize = options.imgSize !== undefined ? options.imgSize : null;\n\n /**\n * @type {string|undefined}\n */\n var src = options.src;\n\n assert(!(src !== undefined && image),\n 4); // `image` and `src` cannot be provided at the same time\n assert(!image || (image && imgSize),\n 5); // `imgSize` must be set when `image` is provided\n\n if ((src === undefined || src.length === 0) && image) {\n src = /** @type {HTMLImageElement} */ (image).src || getUid(image);\n }\n assert(src !== undefined && src.length > 0,\n 6); // A defined and non-empty `src` or `image` must be provided\n\n /**\n * @type {import(\"../ImageState.js\").default}\n */\n var imageState = options.src !== undefined ?\n ImageState.IDLE : ImageState.LOADED;\n\n /**\n * @private\n * @type {import(\"../color.js\").Color}\n */\n this.color_ = options.color !== undefined ? asArray(options.color) : null;\n\n /**\n * @private\n * @type {import(\"./IconImage.js\").default}\n */\n this.iconImage_ = getIconImage(\n image, /** @type {string} */ (src), imgSize, this.crossOrigin_, imageState, this.color_);\n\n /**\n * @private\n * @type {Array}\n */\n this.offset_ = options.offset !== undefined ? options.offset : [0, 0];\n\n /**\n * @private\n * @type {import(\"./IconOrigin.js\").default}\n */\n this.offsetOrigin_ = options.offsetOrigin !== undefined ?\n options.offsetOrigin : IconOrigin.TOP_LEFT;\n\n /**\n * @private\n * @type {Array}\n */\n this.origin_ = null;\n\n /**\n * @private\n * @type {import(\"../size.js\").Size}\n */\n this.size_ = options.size !== undefined ? options.size : null;\n\n }\n\n if ( ImageStyle ) Icon.__proto__ = ImageStyle;\n Icon.prototype = Object.create( ImageStyle && ImageStyle.prototype );\n Icon.prototype.constructor = Icon;\n\n /**\n * Clones the style. The underlying Image/HTMLCanvasElement is not cloned.\n * @return {Icon} The cloned style.\n * @api\n */\n Icon.prototype.clone = function clone () {\n return new Icon({\n anchor: this.anchor_.slice(),\n anchorOrigin: this.anchorOrigin_,\n anchorXUnits: this.anchorXUnits_,\n anchorYUnits: this.anchorYUnits_,\n crossOrigin: this.crossOrigin_,\n color: (this.color_ && this.color_.slice) ? this.color_.slice() : this.color_ || undefined,\n src: this.getSrc(),\n offset: this.offset_.slice(),\n offsetOrigin: this.offsetOrigin_,\n size: this.size_ !== null ? this.size_.slice() : undefined,\n opacity: this.getOpacity(),\n scale: this.getScale(),\n rotation: this.getRotation(),\n rotateWithView: this.getRotateWithView()\n });\n };\n\n /**\n * @inheritDoc\n * @api\n */\n Icon.prototype.getAnchor = function getAnchor () {\n if (this.normalizedAnchor_) {\n return this.normalizedAnchor_;\n }\n var anchor = this.anchor_;\n var size = this.getSize();\n if (this.anchorXUnits_ == IconAnchorUnits.FRACTION ||\n this.anchorYUnits_ == IconAnchorUnits.FRACTION) {\n if (!size) {\n return null;\n }\n anchor = this.anchor_.slice();\n if (this.anchorXUnits_ == IconAnchorUnits.FRACTION) {\n anchor[0] *= size[0];\n }\n if (this.anchorYUnits_ == IconAnchorUnits.FRACTION) {\n anchor[1] *= size[1];\n }\n }\n\n if (this.anchorOrigin_ != IconOrigin.TOP_LEFT) {\n if (!size) {\n return null;\n }\n if (anchor === this.anchor_) {\n anchor = this.anchor_.slice();\n }\n if (this.anchorOrigin_ == IconOrigin.TOP_RIGHT ||\n this.anchorOrigin_ == IconOrigin.BOTTOM_RIGHT) {\n anchor[0] = -anchor[0] + size[0];\n }\n if (this.anchorOrigin_ == IconOrigin.BOTTOM_LEFT ||\n this.anchorOrigin_ == IconOrigin.BOTTOM_RIGHT) {\n anchor[1] = -anchor[1] + size[1];\n }\n }\n this.normalizedAnchor_ = anchor;\n return this.normalizedAnchor_;\n };\n\n /**\n * Set the anchor point. The anchor determines the center point for the\n * symbolizer.\n *\n * @param {Array} anchor Anchor.\n * @api\n */\n Icon.prototype.setAnchor = function setAnchor (anchor) {\n this.anchor_ = anchor;\n this.normalizedAnchor_ = null;\n };\n\n /**\n * Get the icon color.\n * @return {import(\"../color.js\").Color} Color.\n * @api\n */\n Icon.prototype.getColor = function getColor () {\n return this.color_;\n };\n\n /**\n * Get the image icon.\n * @param {number} pixelRatio Pixel ratio.\n * @return {HTMLImageElement|HTMLCanvasElement} Image or Canvas element.\n * @override\n * @api\n */\n Icon.prototype.getImage = function getImage (pixelRatio) {\n return this.iconImage_.getImage(pixelRatio);\n };\n\n /**\n * @override\n */\n Icon.prototype.getImageSize = function getImageSize () {\n return this.iconImage_.getSize();\n };\n\n /**\n * @override\n */\n Icon.prototype.getHitDetectionImageSize = function getHitDetectionImageSize () {\n return this.getImageSize();\n };\n\n /**\n * @override\n */\n Icon.prototype.getImageState = function getImageState () {\n return this.iconImage_.getImageState();\n };\n\n /**\n * @override\n */\n Icon.prototype.getHitDetectionImage = function getHitDetectionImage (pixelRatio) {\n return this.iconImage_.getHitDetectionImage(pixelRatio);\n };\n\n /**\n * @inheritDoc\n * @api\n */\n Icon.prototype.getOrigin = function getOrigin () {\n if (this.origin_) {\n return this.origin_;\n }\n var offset = this.offset_;\n\n if (this.offsetOrigin_ != IconOrigin.TOP_LEFT) {\n var size = this.getSize();\n var iconImageSize = this.iconImage_.getSize();\n if (!size || !iconImageSize) {\n return null;\n }\n offset = offset.slice();\n if (this.offsetOrigin_ == IconOrigin.TOP_RIGHT ||\n this.offsetOrigin_ == IconOrigin.BOTTOM_RIGHT) {\n offset[0] = iconImageSize[0] - size[0] - offset[0];\n }\n if (this.offsetOrigin_ == IconOrigin.BOTTOM_LEFT ||\n this.offsetOrigin_ == IconOrigin.BOTTOM_RIGHT) {\n offset[1] = iconImageSize[1] - size[1] - offset[1];\n }\n }\n this.origin_ = offset;\n return this.origin_;\n };\n\n /**\n * Get the image URL.\n * @return {string|undefined} Image src.\n * @api\n */\n Icon.prototype.getSrc = function getSrc () {\n return this.iconImage_.getSrc();\n };\n\n /**\n * @inheritDoc\n * @api\n */\n Icon.prototype.getSize = function getSize () {\n return !this.size_ ? this.iconImage_.getSize() : this.size_;\n };\n\n /**\n * @override\n */\n Icon.prototype.listenImageChange = function listenImageChange (listener, thisArg) {\n return listen(this.iconImage_, EventType.CHANGE,\n listener, thisArg);\n };\n\n /**\n * Load not yet loaded URI.\n * When rendering a feature with an icon style, the vector renderer will\n * automatically call this method. However, you might want to call this\n * method yourself for preloading or other purposes.\n * @override\n * @api\n */\n Icon.prototype.load = function load () {\n this.iconImage_.load();\n };\n\n /**\n * @override\n */\n Icon.prototype.unlistenImageChange = function unlistenImageChange (listener, thisArg) {\n unlisten(this.iconImage_, EventType.CHANGE,\n listener, thisArg);\n };\n\n return Icon;\n}(ImageStyle));\n\n\nexport default Icon;\n\n//# sourceMappingURL=Icon.js.map","{register} = require 'src/js/infrastructure/setup-registry'\r\n{post, antiForgeryPost} = require 'src/coffee/infrastructure/ajax'\r\n\r\n{makeErrorHandler} = require 'src/coffee/helpers/async/notifications'\r\n{waitscreen} = require 'src/js/infrastructure'\r\n\r\nsetup = ($ctx) ->\r\n $grid = $ctx.find('#licenses-grid').staticgrid()[0]\r\n\r\n $detailsGrid = $ctx.find('#utilization-details-grid').staticgrid()[0]\r\n $duration = $ctx.find('#duration')\r\n $startDatePicker = $ctx.find('#start-date-picker')\r\n $startDatePicker.datetimepicker()\r\n $utilizationButton = $ctx.find('#show-utilization-button')\r\n $endDatePicker = $ctx.find('#end-date-picker')\r\n $endDatePicker.datetimepicker\r\n # useCurrent : false #Important! See issue #1075\r\n\r\n $title = $ctx.find('#utilization-details-modal h4.modal-title')\r\n startDate = $startDatePicker.data('DateTimePicker').date()\r\n endDate = $endDatePicker.data('DateTimePicker').date()\r\n $parameters = $ctx.find('#utilization-parameters')\r\n $updateBtn = $ctx.find('#update-details')\r\n # set today as the maximum for both dates\r\n $startDatePicker.data('DateTimePicker').maxDate(endDate)\r\n $endDatePicker.data('DateTimePicker').maxDate(endDate).minDate(startDate)\r\n $updateBtn.on 'click', ->\r\n startDate = $startDatePicker.data('DateTimePicker').date()\r\n endDate = $endDatePicker.data('DateTimePicker').date()\r\n unless startDate is null or endDate is null\r\n getUtilization()\r\n $startDatePicker.on 'dp.change', (e) ->\r\n $endDatePicker.data('DateTimePicker').maxDate(moment()).minDate(e.date)\r\n# startDate = $startDatePicker.data('DateTimePicker').date()\r\n# endDate = $endDatePicker.data('DateTimePicker').date()\r\n# if startDate not null and endDate not null\r\n# getUtilization()\r\n\r\n $endDatePicker.on 'dp.change', (e) ->\r\n $startDatePicker.data('DateTimePicker').maxDate(e.date)\r\n $endDatePicker.data('DateTimePicker').maxDate(moment())\r\n # maxdate can't be higher than today, because the start date picker has today as the maximum\r\n# startDate = $startDatePicker.data('DateTimePicker').date()\r\n# endDate = $endDatePicker.data('DateTimePicker').date()\r\n# if startDate not null and endDate not null\r\n# getUtilization()\r\n\r\n $detailsModal = $ctx.find('#utilization-details-modal')\r\n\r\n\r\n $('#csv-export-button').on 'click', (event) ->\r\n $btn = $(event.currentTarget)\r\n promise = post $btn.data 'url'\r\n .done (url) -> window.location = url\r\n .fail makeErrorHandler $btn\r\n\r\n waitscreen.waitFor promise\r\n\r\n selectedLicenseChanged = (event) ->\r\n if event.rows.length > 0\r\n $utilizationButton.parent().popover('destroy')\r\n $utilizationButton.enable()\r\n else\r\n $utilizationButton.parent().popover('enable')\r\n $utilizationButton.disable()\r\n\r\n refreshDetailsModal = ->\r\n selectedRow = $grid.state.rows('.selected')[0]\r\n $title.text selectedRow.rtkUserName\r\n\r\n getUtilization()\r\n\r\n\r\n getUtilization = ->\r\n $duration.val null\r\n\r\n url = $parameters.data 'url'\r\n data =\r\n rtkUserName: $grid.state.rows('.selected')[0].rtkUserName\r\n startDate: $startDatePicker.data('DateTimePicker').date()\r\n endDate: $endDatePicker.data('DateTimePicker').date()\r\n\r\n promise = antiForgeryPost url, data\r\n .done (utilization) ->\r\n refreshUtilizationDetailsGrid utilization\r\n .fail makeErrorHandler $parameters\r\n\r\n waitscreen.waitFor promise\r\n\r\n refreshUtilizationDetailsGrid = (utilization) ->\r\n $detailsGrid.table.rows().deselect()\r\n $detailsGrid.table.rows().remove()\r\n\r\n for row in utilization.rows\r\n row.logon = moment row.logon\r\n row.logoff = if row.logoff then moment row.logoff else null\r\n\r\n $detailsGrid.table.rows.add(utilization.rows).draw()\r\n $detailsGrid.table.columns.adjust()\r\n\r\n $duration.val utilization.duration\r\n $duration.text utilization.duration\r\n\r\n $grid.table.on 'change.selection', selectedLicenseChanged\r\n $detailsModal.on 'shown.bs.modal', refreshDetailsModal\r\n\r\nregister('App.RTK.Administration.MyLicenses.Setup', setup)\r\n","/**\n * @module ol/style/IconAnchorUnits\n */\n\n/**\n * Icon anchor units. One of 'fraction', 'pixels'.\n * @enum {string}\n */\nexport default {\n FRACTION: 'fraction',\n PIXELS: 'pixels'\n};\n\n//# sourceMappingURL=IconAnchorUnits.js.map","{getCorrectionFactorForLength} = require 'src/coffee/controls/map/utilities/coordinates'\r\n{Plugin} = require 'src/coffee/controls/map/plugins/base'\r\n\r\nFeature = require('ol/Feature').default\r\nCircle = require('ol/geom/Circle').default\r\nVectorLayer = require('ol/layer/Vector').default\r\nVectorSource = require('ol/source/Vector').default\r\n\r\nclass RadiusPlugin extends Plugin\r\n constructor: (pointVectorLayer) ->\r\n @pointVectorLayer = pointVectorLayer\r\n\r\n init: ->\r\n @radiusSource = new VectorSource\r\n @radiusVectorLayer = new VectorLayer\r\n map: @map\r\n source: @radiusSource\r\n @createRadiusOverlays()\r\n pointSource = @pointVectorLayer.getSource()\r\n pointSource.on 'addfeature', @newPoint\r\n pointSource.on 'changefeature', @pointMoved\r\n pointSource.on 'removefeature', @pointDeleted\r\n\r\n createRadiusOverlays: ->\r\n for pointFeature in @pointVectorLayer.getSource().getFeatures()\r\n @createRadiusOverlay pointFeature\r\n\r\n createRadiusOverlay: (pointFeature) ->\r\n circleFeature = new Feature\r\n geometry: @createRadiusGeometry pointFeature\r\n circleFeature.setId pointFeature.getId()\r\n @radiusSource.addFeature circleFeature\r\n\r\n createRadiusGeometry: (pointFeature) ->\r\n center = pointFeature.getGeometry().getCoordinates()\r\n radius = pointFeature.get('radius')\r\n unless radius\r\n radius = $('#radius').val()\r\n radius = radius * 1000 / getCorrectionFactorForLength(@map)\r\n return new Circle center, radius\r\n\r\n newPoint: (evt) =>\r\n @createRadiusOverlay(evt.feature)\r\n\r\n pointMoved: (evt) =>\r\n raduisFeature = @radiusSource.getFeatureById(evt.feature.getId())\r\n raduisFeature.setGeometry @createRadiusGeometry(evt.feature)\r\n\r\n pointDeleted: (evt) =>\r\n raduisFeature = @radiusSource.getFeatureById(evt.feature.getId())\r\n @radiusSource.removeFeature raduisFeature\r\n\r\nmodule.exports = {\r\n RadiusPlugin\r\n}\r\n","{post} = require 'src/coffee/infrastructure/ajax'\r\n{waitscreen} = require 'src/js/infrastructure'\r\n{Plugin} = require 'src/coffee/controls/map/plugins/base'\r\n\r\nWKT = require('ol/format/WKT').default\r\nStyle = require('ol/style/Style').default\r\nStroke = require('ol/style/Stroke').default\r\nFill = require('ol/style/Fill').default\r\nText = require('ol/style/Text').default\r\nIcon = require('ol/style/Icon').default\r\nVectorSource = require('ol/source/Vector').default\r\n\r\n# util = Controls.Map.Utility\r\n#\r\n# {Plugin} = Controls.Map\r\n\r\ncustomStyle = (feature, resolution) ->\r\n styleDefinition = {\r\n fill: 'rgba(255,255,255,0.3)'\r\n stroke: '#3794c1'\r\n label: true\r\n maxLabelResolution: 20}\r\n\r\n textStroke = new Stroke\r\n color: styleDefinition.stroke\r\n width: 3\r\n\r\n textFill = new Fill\r\n color: '#ffffff'\r\n\r\n displayLabel = feature.get('userName') and styleDefinition.label\r\n text = if not displayLabel then undefined else new Text\r\n textAlign: 'left'\r\n textBaseline: 'left'\r\n font: 'bold 12px Courier New'\r\n text: '' + (feature.get('userName') or '')\r\n fill: textFill\r\n stroke: textStroke\r\n offsetX: -20\r\n offsetY: 15\r\n rotation: 0\r\n\r\n properties = feature.getProperties()\r\n status = properties.status\r\n quality = properties.quality\r\n\r\n src = switch status\r\n when 'Online'\r\n switch quality\r\n when 'RTKFix' then '/images/pin-green-online.png'\r\n when 'RTKFloat' then '/images/pin-yellow-online.png'\r\n when 'DGPS' then '/images/pin-yellow-online.png'\r\n when 'GPS' then '/images/pin-orange-online.png'\r\n else '/images/pin-blue-online.png'\r\n when 'Offline'\r\n switch quality\r\n when 'RTKFix' then '/images/pin-green-offline.png'\r\n when 'RTKFloat' then '/images/pin-yellow-offline.png'\r\n when 'DGPS' then '/images/pin-yellow-offline.png'\r\n when 'GPS' then '/images/pin-orange-offline.png'\r\n else '/images/pin-blue-offline.png'\r\n when 'Online_OutOfRange' then '/images/pin-red-online.png'\r\n when 'Offline_OutOfRange' then '/images/pin-red-offline.png'\r\n else '/images/pin-blue-offline.png'\r\n\r\n return [\r\n new Style\r\n image: new Icon {anchor: [0.5, 1], src}\r\n text: text\r\n ]\r\n\r\nclass RTKTelematicPlugin extends Plugin\r\n constructor: ($ctx, layerName, promise) ->\r\n @$ctx = $ctx\r\n @layerName = layerName\r\n @promise = promise\r\n\r\n init: ->\r\n @$updateButton = @$ctx.find 'button#update-positions'\r\n .on 'click', @refreshVehicles\r\n @$grid = @$ctx.find('#rtk-logins').staticgrid()[0]\r\n\r\n @refreshUrl = @$updateButton.data('url')\r\n @entityId = @$ctx.find('#EntityId').val()\r\n @showAdditionalOfflineMachines = @$ctx.find('#show-offline-machines').prop 'checked'\r\n @$toolTipContainer = @$ctx.find('#tooltip-container')\r\n online = @$toolTipContainer.find('#online-status').data('status-online')\r\n offline = @$toolTipContainer.find('#online-status').data('status-offline')\r\n noStatus = @$toolTipContainer.find('#online-status').data('no-status')\r\n @format = new WKT\r\n @vehicleFeatures = []\r\n @vehicleSource = new VectorSource\r\n features: @vehicleFeatures\r\n @vehicleLayer = @mapcontrol.layerManager.getLayersByName @layerName\r\n @vehicleLayer[0].setStyle customStyle\r\n @vehicleLayer[0].setSource @vehicleSource\r\n @promise.done =>\r\n @refreshVehicles()\r\n\r\n @$grid.table.on 'change.selection', (event) =>\r\n return if event.rows.length is 0\r\n feature = @vehicleLayer[0].getSource().getFeatureById event.rows[0].uid\r\n pointGeometry = feature.getGeometry().getCoordinates()\r\n view = @map.getView()\r\n toolTipGeo = []\r\n toolTipGeo.push pointGeometry[0] + 824\r\n toolTipGeo.push pointGeometry[1] + 454\r\n\r\n view = @map.getView()\r\n view.animate {zoom: 11}\r\n view.animate {center: toolTipGeo}\r\n\r\n refreshVehicles: =>\r\n view = @map.getView()\r\n geoCenter = view.getCenter()\r\n zoomLevel = view.getZoom()\r\n showAdditionalOfflineMachines = $('#show-offline-machines').prop 'checked'\r\n promise = post @refreshUrl, {@entityId, showAdditionalOfflineMachines, zoomLevel, geoCenter}\r\n .then @updateMap\r\n waitscreen.waitFor promise\r\n\r\n updateMap: (model) =>\r\n rows = model.machineMapModels.map((x) => @$grid.converter.processJSObject(x))\r\n @$grid.table.clear()\r\n @$grid.table.rows.add(rows)\r\n @$grid.table.order [0, 'desc']\r\n @$grid.table.draw()\r\n @mapcontrol.clearMapServerLayer()\r\n defaultExtent = model.extent\r\n extent = [Number.MAX_VALUE, Number.MAX_VALUE, Number.MIN_VALUE, Number.MIN_VALUE]\r\n extent[0] = defaultExtent.xMin\r\n extent[1] = defaultExtent.yMin\r\n extent[2] = defaultExtent.xMax\r\n extent[3] = defaultExtent.yMax\r\n\r\n @mapcontrol.changeDefaultExtent extent\r\n @mapcontrol.reset()\r\n vehicles = model.machineMapModels\r\n @vehicleFeatures = []\r\n @vehicleSource.clear()\r\n #featureUids = @vehicleFeatures.map (f) -> f.get \"uid\"\r\n\r\n #existing = (v for v in vehicles when v.uid in featureUids)\r\n #newVehicles = (v for v in vehicles when v.uid not in featureUids)\r\n\r\n #@updateFeatures(existing)\r\n @addVehicles(vehicles)\r\n view = @map.getView()\r\n view.setCenter model.geoCenter\r\n view.setZoom model.zoomLevel\r\n\r\n updateFeatures: (vehicles) ->\r\n for vehicle in vehicles\r\n feature = @vehicleSource.getFeatureById(vehicle.uid)\r\n @updateFeature(feature, vehicle)\r\n\r\n addVehicles: (vehicles) ->\r\n for v in vehicles\r\n @addVehicle(v)\r\n\r\n updateFeature: (feature, vehicle) ->\r\n geo = @format.readGeometry vehicle.machineGeometry\r\n geo.transform 'EPSG:4326', 'EPSG:900913'\r\n feature.setGeometry geo\r\n feature.setProperties\r\n date: vehicle.date\r\n status: vehicle.status\r\n quality: vehicle.quality\r\n isGlobal: vehicle.isGlobal\r\n isExternal: vehicle.isExternal\r\n licenseType: vehicle.licenseType\r\n numberOfSatellites: vehicle.numberOfSatellites\r\n altitude: vehicle.altitude\r\n hdop: vehicle.hdop\r\n\r\n addVehicle: (vehicle) ->\r\n feature = @format.readFeature vehicle.machineGeometry\r\n\r\n feature.setProperties\r\n date: vehicle.date\r\n uid: vehicle.uid\r\n status: vehicle.status\r\n quality: vehicle.quality\r\n planUid: vehicle.planUID\r\n radius: vehicle.radius\r\n rtkPosition: vehicle.rtkPosition\r\n isGlobal: vehicle.isGlobal\r\n isExternal: vehicle.isExternal\r\n licenseType: vehicle.licenseType\r\n numberOfSatellites: vehicle.numberOfSatellites\r\n altitude: vehicle.altitude\r\n hdop: vehicle.hdop\r\n vin: vehicle.vin\r\n userName: vehicle.userName\r\n vehicleName: vehicle.vehicleName\r\n\r\n feature.setId vehicle.uid\r\n feature.getGeometry().transform 'EPSG:4326', 'EPSG:900913'\r\n\r\n @vehicleFeatures.push feature\r\n @vehicleSource.addFeature feature\r\n\r\nmodule.exports = {\r\n RTKTelematicPlugin\r\n}\r\n","{Plugin} = require 'src/coffee/controls/map/plugins/base'\r\n\r\nOverlay = require('ol/Overlay').default\r\nVectorSource = require('ol/source/Vector').default\r\n\r\nclass RTKMachinePathMapPlugin extends Plugin\r\n constructor: ($ctx, layerName) ->\r\n @$ctx = $ctx\r\n @layerName = layerName\r\n\r\n init: ->\r\n @layerPoint = @mapcontrol.layerManager.getLayersByName @layerName\r\n\r\n if @layerPoint.length > 0\r\n @layerPoint[0].setMaxResolution 3\r\n\r\n @dateTimeInfoSource = new VectorSource\r\n @setupOverlay()\r\n @map.on 'pointermove', (evt) =>\r\n @dateTimeInfoSource.clear()\r\n @overlay.setPosition(undefined)\r\n @map.forEachFeatureAtPixel evt.pixel, @showDateTime\r\n\r\n showDateTime: (feature, layer) =>\r\n return unless layer and layer.get('name') is @layerName\r\n properties = feature.getProperties()\r\n dateTime = moment(properties.dateTime).format('L LT')\r\n quality = properties.quality\r\n numberOfSatellites = properties.numberOfSatellites\r\n pointGeometry = feature.getGeometry().getCoordinates()\r\n @$toolTipContent.find('#date-time').html(dateTime)\r\n @$toolTipContent.find('#quality').html(quality)\r\n @$toolTipContent.find('#number-of-satellites').html(numberOfSatellites)\r\n\r\n @overlay.setPosition(pointGeometry)\r\n @$toolTipContainer.show()\r\n\r\n setupOverlay: ->\r\n @$toolTipContainer = @$ctx.find('#tooltip-container')\r\n @$toolTipContent = @$toolTipContainer.find('#tooltip-content')\r\n @overlay = new Overlay\r\n element: @$toolTipContainer[0]\r\n @map.addOverlay @overlay\r\n\r\nmodule.exports = {\r\n RTKMachinePathMapPlugin\r\n}\r\n","{register} = require 'src/js/infrastructure/setup-registry'\r\n{post} = require 'src/coffee/infrastructure/ajax'\r\n{waitscreen} = require 'src/js/infrastructure'\r\n\r\n{makeReplaceHandler} = require 'src/coffee/helpers/async/fragment-loading'\r\n{makeErrorHandler, makeWarningHandler} = require 'src/coffee/helpers/async/notifications'\r\n\r\n{getByName} = require 'src/coffee/controls/map'\r\n\r\n{RTKMachinePathMapPlugin} = require 'src/coffee/areas/rtk/rtk-machine-path-map-plugin'\r\n\r\nmachinePathMapSetup = ($ctx) ->\r\n $logins = $ctx.find('#logins')\r\n $showPathBtn = $ctx.find('#show-path')\r\n\r\n $startDatePicker = $ctx.find('#start-datepicker')\r\n startDatePicker = $startDatePicker.data('DateTimePicker')\r\n $endDatePicker = $ctx.find('#end-datepicker')\r\n endDatePicker = $endDatePicker.data('DateTimePicker')\r\n infoTextEndDateChanged = $('#end-date-changed').val()\r\n infoTextStartDateChanged = $('#start-date-changed').val()\r\n\r\n toggleButtons()\r\n\r\n $csvDownloadButton = $ctx.find('#csv-download-button').on 'click', downloadCsv\r\n\r\n $startDatePicker.on 'dp.hide', (e) ->\r\n if (startDatePicker.date() and endDatePicker.date())\r\n newEndDate = e.date.clone()\r\n endDate = endDatePicker.date()\r\n\r\n endDatePicker.maxDate(moment().subtract(30, 'seconds')).minDate(newEndDate.subtract(30, 'seconds'))\r\n\r\n if endDate.diff(newEndDate, 'days', true) > 7\r\n newEndDate.add(7, 'days')\r\n now = moment()\r\n\r\n if newEndDate.diff(now) > 0\r\n endDatePicker.date(now)\r\n makeWarningHandler(infoTextEndDateChanged)()\r\n else\r\n endDatePicker.date(newEndDate)\r\n makeWarningHandler(infoTextEndDateChanged)()\r\n\r\n toggleButtons()\r\n\r\n $endDatePicker.on 'dp.hide', (e) ->\r\n if (startDatePicker.date() and endDatePicker.date())\r\n endDate = e.date.clone()\r\n startDate = startDatePicker.date()\r\n\r\n startDatePicker.maxDate(endDate)\r\n endDatePicker.maxDate(moment().subtract(30, 'seconds'))\r\n\r\n if endDate.diff(startDate, 'days', true) > 7\r\n endDate.subtract(7, 'days')\r\n startDatePicker.date(endDate)\r\n makeWarningHandler(infoTextStartDateChanged)()\r\n\r\n toggleButtons()\r\n\r\n $logins.on 'change', toggleButtons\r\n $showPathBtn.on 'click', updateMachinePath\r\n\r\n\r\ndownloadCsv = (event) ->\r\n event.preventDefault()\r\n\r\n $btn = $(event.currentTarget)\r\n url = $btn.data 'url'\r\n data =\r\n loginName: $('#logins').val()\r\n startDate: $('#start-datepicker').data('DateTimePicker').date()\r\n endDate: $('#end-datepicker').data('DateTimePicker').date()\r\n\r\n promise = post url, data\r\n .done (downloadUrl) -> window.location = downloadUrl\r\n .fail makeErrorHandler $btn\r\n\r\n waitscreen.waitFor promise\r\n\r\ntoggleButtons = ->\r\n startDate = $('#start-datepicker').data('DateTimePicker').date()\r\n endDate = $('#end-datepicker').data('DateTimePicker').date()\r\n loginName = $('#logins').val()\r\n\r\n $showPathButton = $('#show-path')\r\n $csvDownloadButton = $('#csv-download-button')\r\n\r\n if startDate and endDate and loginName\r\n $showPathButton.enable()\r\n $csvDownloadButton.enable()\r\n else\r\n $showPathButton.disable()\r\n $csvDownloadButton.disable()\r\n\r\nupdateMachinePath = ->\r\n url = $('#show-path').data 'url'\r\n data =\r\n loginName: $('#logins').val()\r\n startDate: $('#start-datepicker').data('DateTimePicker').date()\r\n endDate: $('#end-datepicker').data('DateTimePicker').date()\r\n\r\n promise = post url, data\r\n .done makeReplaceHandler $('#map-container')\r\n waitscreen.waitFor promise\r\n\r\nmachinePathMapPluginSetup = ($ctx) ->\r\n map = getByName 'machine-details', $ctx\r\n layerName = $('#layer-name').data 'layer-name-points'\r\n map.registerPlugin new RTKMachinePathMapPlugin($ctx, layerName)\r\n\r\nregister('App.RTK.MachinePathMap.Setup', machinePathMapSetup)\r\nregister('App.RTK.MachinePathMap.PluginSetup', machinePathMapPluginSetup)\r\n","/**\n * @module ol/style/IconOrigin\n */\n\n/**\n * Icon origin. One of 'bottom-left', 'bottom-right', 'top-left', 'top-right'.\n * @enum {string}\n */\nexport default {\n BOTTOM_LEFT: 'bottom-left',\n BOTTOM_RIGHT: 'bottom-right',\n TOP_LEFT: 'top-left',\n TOP_RIGHT: 'top-right'\n};\n\n//# sourceMappingURL=IconOrigin.js.map","{register} = require 'src/js/infrastructure/setup-registry'\r\n{post, antiForgeryPost} = require 'src/coffee/infrastructure/ajax'\r\n{makeRefreshHandler} = require 'src/coffee/helpers/async/fragment-loading'\r\n\r\n{makeSuccessHandler, makeErrorHandler} = require 'src/coffee/helpers/async/notifications'\r\n{waitscreen} = require 'src/js/infrastructure'\r\n\r\nsetup = ($ctx) ->\r\n $resetButton = $ctx.find('#reset-logins')\r\n grid = $ctx.find('#vrs-login-grid').staticgrid()[0]\r\n grid.editor.on 'initEdit', ->\r\n grid.editor.hide('lastUsed')\r\n grid.editor.hide('loginName')\r\n grid.editor.hide('sessionIdFirst')\r\n grid.editor.hide('sessionIdSecond')\r\n grid.editor.hide('fkMyRTKBaseStation')\r\n grid.editor.hide('fkMyRTKBaseLogin')\r\n\r\n grid.editor.on 'initCreate', ->\r\n grid.editor.field('licenseBegin').val(moment())\r\n grid.editor.field('licenseEnd').val(moment())\r\n grid.editor.hide('lastUsed')\r\n grid.editor.hide('loginName')\r\n grid.editor.hide('sessionIdFirst')\r\n grid.editor.hide('sessionIdSecond')\r\n grid.editor.hide('fkMyRTKBaseStation')\r\n grid.editor.hide('fkMyRTKBaseLogin')\r\n\r\n $saveButton = $ctx.find('#save-button')\r\n $saveButton.on 'click', ->\r\n url = $saveButton.data 'url'\r\n data =\r\n changes: grid.state.changes()\r\n\r\n promise = antiForgeryPost url, data\r\n .then makeRefreshHandler()\r\n .done makeSuccessHandler $saveButton\r\n .fail makeErrorHandler $saveButton\r\n waitscreen.waitFor promise\r\n\r\n grid.table.on 'change.selection', (event) ->\r\n if event.rows.length < 1\r\n $resetButton.disable()\r\n else\r\n\r\n $resetButton.enable()\r\n $resetButton.on 'click', ->\r\n selectedRows = grid.table.rows('.selected').data().toArray()\r\n vrsLoginIds = selectedRows.map((x) -> x.uid)\r\n\r\n url = $resetButton.data 'url'\r\n if vrsLoginIds.length > 0\r\n promise = post url, {vrsLoginIds}\r\n .then makeRefreshHandler()\r\n .done makeSuccessHandler $resetButton\r\n .fail makeErrorHandler $resetButton\r\n waitscreen.waitFor promise\r\n\r\nregister('App.RTK.Administration.VRSLoginManagement.LoginManagement.Setup', setup)\r\n"],"sourceRoot":""}