"
].join("\n");
});
$('#wmsLayersMenu ul').html(itemsHtml);
// we need to prevent the menu from collapsing when changing layers so we override the li a click:
$('#wmsLayersMenu ul li input, #wmsLayersMenu ul li label').on("click", function (e) {
e.stopPropagation();
var cb = $(this).parent().find("input");
if ($(e.target).prop("tagName") === "INPUT") { // click on the actual input btn, just trigger change:
cb.change();
} else {
e.preventDefault();
cb.prop("checked", !cb.prop("checked")).change();
}
});
}
// Kartlag: prosjekt-/bildeomriss
var projectLayersHtml = "
";
projectLayersHtml += "
" + language['ProjectLayersAllProjects'] + "
";
for (key in nib.settings.ortophotoTypesNew) {
projectLayersHtml += "
" + nib.settings.ortophotoTypesNew[key] + "
";
}
projectLayersHtml += "
";
projectLayersHtml += "
" + language['ProjectLayersAllPictures'] + "
";
for (key in nib.settings.ortophotoTypesNew) {
projectLayersHtml += "
" + nib.settings.ortophotoTypesNew[key] + "
";
}
projectLayersHtml += "
";
projectLayersHtml += "
" + language['WMSPlannedProjects'] + "
";
projectLayersHtml += "
Omløp
";
projectLayersHtml += "
Geovekst
";
projectLayersHtml += "
";
$('#rightSlidePanel #layers #projectLayers').html(projectLayersHtml);
var jsTreeConf = {
plugins: ["checkbox", "realcheckboxes"],
core: {
animation: false,
themes: {
icons: false,
dots: false
}
}
};
// Prosjektomriss
$('#projectOutlineTree').jstree(jsTreeConf).on("changed.jstree", function (e, data) {
var orthoTypes = [];
$(data.selected).each(function (idx, value) {
if (value.indexOf("_") > -1) {
orthoTypes.push(value.substring(17)); // parse type id (id='projectOutlineCB_X')
}
});
map.showProjectOutlines(orthoTypes);
});
// Bildeomriss
$('#pictureOutlineTree').jstree(jsTreeConf).on("changed.jstree", function (e, data) {
var orthoTypes = [];
$(data.selected).each(function (idx, value) {
if (value.indexOf("_") > -1) {
orthoTypes.push(value.substring(17)); // parse type id (id='pictureOutlineCB_X')
}
});
map.showPictureOutlines(orthoTypes);
});
// PlanlagteProsjekter
$('#plannedProjectTree').jstree(jsTreeConf).on("changed.jstree", function (e, data) {
map.togglePlannedProjectsOmlopLayer(data.selected.indexOf("plannedProjectsOmlopCB_") != -1)
map.togglePlannedProjectsGeovekstLayer(data.selected.indexOf("plannedProjectsGeovekstCB_") != -1)
});
enablePictureLayerTree(pictureMapLayerScaleLimit + 1); // will disable it at startup
}
function _onSidebarAnimation(sidebarSide, containerWidth, sidebarStatus) {
var _padding = sidebarStatus == 'closed' ? containerWidth : 0;
var _delay = sidebarStatus == 'closed' ? 400 : 0; // because of animation
setTimeout(function () { // adjust map left/right padding so it will not overlap with sidebars
$('#nibMap').css("margin-" + sidebarSide, _padding);
if (map)
map.resizeMap();
}, _delay);
if (sidebarSide == "left" && map) { // Export GUI open/close
setExportVisible(sidebarStatus == "closed");
}
else if (sidebarSide == "right") {
rightSidebarVisible = sidebarStatus == "closed";
}
}
function _translatePartial(id) {
var test = __translate($("#" + id + " [data-localization-token]"));
return test;
}
function _translatePage() {
__translate($("[data-localization-token]"));
}
function __translate(localizationTokens) {
$(localizationTokens).each(function () {
var token = $(this).data('localizationToken');
var trans = typeof language[token] != 'undefined' ? language[token] : token;
if (token.toLowerCase().indexOf('placeholder') > -1)
$(this).attr('placeholder', trans);
else if (token.toLowerCase().indexOf('tooltip') > -1)
$(this).attr('title', trans);
else
$(this).html(trans);
});
}
function setLanguage(language) {
docCookies.setItem("language", language);
location.reload();
}
function _getPermalink(forceHttps) {
var _level = map.getZoomLevel();
var _center = map.getCenterPoint();
var _utmZone = map.utmZone;
var _projectIDs = map.visibleProjects.join();
var _wmsLayers = _getWMSCheckedLayers();
var _plannedProjectsOmlop = map.isPlannedProjectsOmlopVisible() ? 1 : 0;
var _plannedProjectsGeovekst = map.isPlannedProjectsGeovekstVisible() ? 1 : 0;
var _protocol = forceHttps && location.hostname != "localhost" ? "https:" : location.protocol;
return _protocol + "//" + location.host + webappPath + "?x=" + Math.round(_center.x) + "&y=" + Math.round(_center.y) + "&level=" + _level + "&utm=" + _utmZone + "&projects=" + _projectIDs + "&layers=" + _wmsLayers.join() + "&plannedOmlop=" + _plannedProjectsOmlop+ "&plannedGeovekst=" + _plannedProjectsGeovekst;
}
function _getWMSCheckedLayers() {
var _wmsLayers = [];
$('.extraLayers input:checked').each(function () {
var layerIdx = $(this).data('layer-idx');
_wmsLayers.push(layerIdx);
});
$('.matrikkelLayers input:checked').each(function () {
var layerIdx = $(this).data('layer-idx');
_wmsLayers.push(layerIdx);
});
return _wmsLayers;
}
function showPermalinkModal() {
var _url = _getPermalink();
$('#permalinkInput').val(_url);
$('#sendPermalinkAlert').removeClass("alert alert-danger").html(""); // clear previous error
$('#permalinkModal').modal('show');
$('#permalinkInput').select();
}
function updatePageUrl() {
if (history.replaceState) {
var newurl = this._getPermalink()
history.replaceState({ path: newurl }, '', newurl);
}
}
function updatePageUrlIfApplicable() {
if (isMobile) {
// on mobile we constantly update the browser url so that the page can be shared
this.updatePageUrl();
}
}
function togglePrintPanel() {
var show = $('#printPanel').css("visibility") != "visible";
map.closeTopPanels();
map.showPrint(show);
/*if ($('#printPanel').css("visibility") == "visible") {
map.showPrint(false);
} else {
map.showPrint(true);
//TODO - hide both right- and leftsidepanel
$('#leftslidePanel').prop("data-status", "closed"); // ?????
}*/
}
/*function generatePrint() {
$('#printPanel').css("visibility", "hidden");
//TODO - implement call to GP tool
}*/
function showUserModal() {
$('#userModal').modal('show');
$.ajax({
url: '/User/Profile',
cache: false,
success: function (viewData) {
$('#userProfilePanel').html(viewData); // populate partial view
_translatePartial("userProfilePanel");
}
});
}
function showLoginModal() {
$('#loginModal').modal('show');
}
function refreshBaatToken() {
$.ajax({
url: '/Home/GetBaatToken',
cache: false,
success: function (token) {
map.refreshBackgroundLayer(token);
}
});
}
function refreshNibWMSTicket() {
$.ajax({
url: '/Home/GetNibWMSTicket',
cache: false,
success: function (ticket) {
map.refreshExtraLayers(ticket);
}
});
}
function _doLogin() {
$('#loginSpinner').html("");
$.ajax({
type: 'POST',
cache: false,
url: "/User/Login",
data: $('#loginForm').serialize(),
async: true,
success: function (res) {
if (res.success) {
_loginResult(res);
}
else {
$('#loginErrAlert').addClass("alert alert-danger").html(res.error);
$('#loginSpinner').html('');
}
return;
},
error: function (res) {
$('#loginErrAlert').addClass("alert alert-danger").html(res.error);
$('#loginSpinner').html('');
}
});
return;
}
function _doLoginKey(event) {
if (event.keyCode === 13) {
_doLogin();
return false;
}
}
function _loginResult(res) {
var _cred = $('#userName').val() + ";" + $('#loginPassword').val();
$.ajax({
async: false,
url: "/Home/GetEnk",
data: { cred: _cred },
type: 'POST',
success: function (result) {
var _exp = 60 * 60 * 6; // 6 hours
docCookies.setItem("token", result, _exp, null, null, true);
}
});
location.href = _getPermalink(true);
}
function _sendPermalink() {
$.ajax({
type: 'post',
url: "Home/SendPermalink",
data: $('#permalinkForm').serialize(),
success: function (res) {
if (res.success)
$('#permalinkModal').modal('hide');
else
$('#sendPermalinkAlert').addClass("alert alert-danger").html(res.error);
}
});
}
function showMessageModal() {
var msgLink = _getPermalink();
$('#MsgPermalink').val(_getPermalink()); //Sets permalink in hidden field
var info = detectBrowserAndOS();
//$('#MsgBrowser').val(navigator.appName+" vers: " + navigator.appVersion); //Sets users browser
var msgLink = info.browserName + " " + info.version;
$('#MsgBrowser').val(info.browserName + " " + info.version); //Sets users browser
var msgOs = info.os;
$('#MsgOS').val(info.os); //Sets users OS.
$('#messageModal').modal({
show: true,
keyboard: false, // Make sure the modal doesn't close when clicking outside of it
backdrop: 'static' // Make sure the modal doesn't close when clicking outside of it
});
$.ajax({
url: '/User/Message',
data: $('#userMessageForm').serialize(),
success: function (viewData) {
$('#userMessagePanel').html(viewData); // populate partial view
_translatePartial("userMessagePanel");
$('#MsgPermalink').val(_getPermalink()); //Sets permalink in hidden field
var info = detectBrowserAndOS();
//$('#MsgBrowser').val(navigator.appName+" vers: " + navigator.appVersion); //Sets users browser
var msgLink = info.browserName + " " + info.version;
$('#MsgBrowser').val(info.browserName + " " + info.version); //Sets users browser
var msgOs = info.os;
$('#MsgOS').val(info.os); //Sets users OS.
$('#sendMsgAlert').removeClass("alert alert-danger").html("");
$('#sendMsgAlertEmail').removeClass("alert alert-danger").html("");
$('#sendMsgSuccess').removeClass("alert alert-success").html("");
}
});
}
function _sendMessage() {
var valid = _validateMsgInput();
if (valid) {
$('#sendMsgAlert').removeClass("alert alert-danger").html("");
$('#sendMsgAlertEmail').removeClass("alert alert-danger").html("");
$.ajax({
type: 'POST',
url: "/User/SendMessage",
data: $('#userMessageForm').serialize(),
success: function (res) {
if (res.success) {
$('#sendMsgAlert').addClass("alert alert-success").html(language["userMsgSentOk"]);
window.setTimeout(function () { $('#messageModal').modal('hide'); }, 4000);
} else {
$('#sendMsgAlert').addClass("alert alert-danger").html(res.error);
}
}
});
}
else {
$('#sendMsgAlert').addClass("alert alert-danger").html(language["userMsgInputError"]);
}
}
function _validateMsgInput() { //check if not empty input values
var valid = true;
if (($("#Msg").val().length === 0) || ($("#Name").val().length === 0) || ($("#MsgType").val().length === 0) || $("#Email").val().length === 0) { // check values not null
valid = false;
}
return valid;
}
function showHelp() {
var winWidth = $(window).width();
var width = Math.min(winWidth, 900) + 'px';
var height = '600px';
var helpDialog = new BootstrapDialog({
message: '',
draggable: true,
animate: false
//title: '
Om løsningen
'
});
helpDialog.realize();
helpDialog.getModalHeader().css('background-color', '#ffffff');
helpDialog.getModalHeader().css('padding', '5px 15px 0px');
helpDialog.getModalBody().css('padding', '0px 2px');
helpDialog.getModalDialog().css('width', width);
// Midlertidig link til webservices-dok:
//helpDialog.getModalHeader().append("Dokumentasjon webtjenester");
helpDialog.open();
}
function _searchProjects() {
var searchExtent = false;
if ($("#kartutsnitt-tab").hasClass('active')) {
searchExtent = true;
}
if (searchExtent == true || searchExtent === "True") {
$('#projectResultList').html("");
} else {
$('#projectResultHele').html("");
}
if (map) {
var queryparams = {
ortosearch: $("#orthophotoSearch").val(),
fromYear: $("#orthophotoSearchFromYear").val(),
toYear: $("#orthophotoSearchToYear").val(),
projectName: $("#orthophotoSearchProjectName").val(),
coverNum: $("#orthophotoSearchCoverNum").val(),
type: $("#selectOrthophotoType").val(),
eier: $("#eiersearch").val(),
flyfirma: $("#flyfirmasearch").val(),
opploesning: $("#opploesningsearch").val(),
queryExtent: searchExtent
};
map.getProjectList(queryparams).then(function (results) {
if (results.features.length > 0) {
results.features = map.sortFeaturesByDate(results.features, true);
projectlist = results.features;
if (aktivesoek) {
_filterProjectList();
} else {
map.getProjectListHTMLStripped(results.features, function (html) {
$("#loadingDiv").addClass('hidden');
if (searchExtent == true || searchExtent === "True") {
$('#projectResultList').html(html);
} else {
$('#projectResultHele').html(html);
}
});
}
} else {
if (searchExtent == true || searchExtent === "True") {
$('#projectResultList').html(map.lang("noHits"));
} else {
$('#projectResultHele').html(map.lang("noHits"));
}
}
});
$("#clearSearch").removeClass("hidden");
$("#collapseFilter").removeClass("hidden");
}
}
function _clearSearchProjects(fromYear, toYear) {
$('#rightSlideTopPanel').css('height', "110px");
$('#rightSlideBottomPanel').css('height', "calc(100% - 110px)");
$("#orthophotoSearchFromYear").val(fromYear);
$("#orthophotoSearchToYear").val(toYear);
$("#orthophotoSearch").val("");
//$("#orthophotoSearchCoverNum").val("");
$("#selectOrthophotoType").val("");
$("#eiersearch").val("");
$("#opploesningsearch").val("");
$("#orthophotoSearchProjectName").val("");
$("#flyfirmasearch").val("");
//$("#orthophotosearch_cb").prop('checked', false);
$("#projectResultList").html("");
$("#projectResultHele").html("");
map.clearAllProjects();
$("#clearSearch").addClass("hidden");
$("#collapseFilter").addClass("hidden");
$("#filtericon")
.removeClass("glyphicon-chevron-down")
.addClass("glyphicon-chevron-right");
if ($("#collapseFilter").hasClass('show')) {
$("#collapseFilter").removeClass("show");
}
aktivesoek = false;
if (!$("#innisoekvar").hasClass('hidden')) {
$("#innisoekvar").addClass("hidden");
}
if (!$("#helesoekvar").hasClass('hidden')) {
$("#helesoekvar").addClass("hidden");
}
if ($("#kartutsnitt-tab").hasClass('active')) {
fireSokFunksjon();
}
//$("#orthophotoSearch").attr({ "title": getLanguage("searchButtonPlaceholder") });
}
function _searchLastProjects() {
$.ajax(
{
url: '/GeoRSS/GetRSSAsJson',
cache: false,
success: function (features) {
if (features == 'null') {
$("#lastProjectsList").html('...');
}
else if (map) {
map.getProjectListHTMLStripped(JSON.parse(features), function (html) {
$("#lastProjectsList").html(html);
//_resizeRightBottomPanel();
});
}
}
});
}
// get the user location + pan to it. Optionally disable error msg
function getGeoLocation(disableErrorMsg) {
if (disableErrorMsg === undefined) disableErrorMsg = false;
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(onGeoLocationSuccess, disableErrorMsg ? undefined : onGeoLocationError);
} else {
if (!disableErrorMsg) {
onGeoLocationError()
}
}
}
function onGeoLocationSuccess(pos) {
map.showGeoPosition(pos.coords.latitude, pos.coords.longitude, geoLocationScale)
}
function onGeoLocationError() {
this.showLocationErrorMsg()
}
function hideSearchErrorMsg() {
$('#userMsgSearch').hide()
}
function showLocationErrorMsg() {
$('#userMsgLocation').show()
}
function hideLocationErrorMsg() {
$('#userMsgLocation').hide()
}
function hideAddToHomeScreenMsg() {
$('#a2hsPrompt').hide()
}
function _sjekkSoekfunksjon() {
var ortosearch = $("#orthophotoSearch").val();
if (ortosearch) {
_searchProjects();
}
}
function _filterProjectList() {
aktivesoek = true;
var result = projectlist;
var searchExtent = false;
var mapScale = map.getScale();
var message = "";
if ($("#kartutsnitt-tab").hasClass('active')) {
searchExtent = true;
};
//if (searchExtent) {
// $('#projectResultList').html("");
//} else {
// $('#projectResultHele').html("");
//}
var year = new Date().getFullYear();
var fromDateFilter = parseInt($("#orthophotoSearchFromYear").val());
var toDateFilter = parseInt($("#orthophotoSearchToYear").val());
if (fromDateFilter > 1900 || toDateFilter x.attributes.aar >= fromDateFilter && x.attributes.aar Fra år:" + fromDateFilter + " til år:" + toDateFilter;
}
var eierFilter = $("#eiersearch").val();
if (eierFilter) {
result = result.filter(x => x.attributes.eier.toLowerCase().includes(eierFilter.toLowerCase()));
message += " > Eier:" + eierFilter;
}
var opploesningFilter = $("#opploesningsearch").val();
if (opploesningFilter) {
result = result.filter(x => x.attributes.pixelstorrelse.includes(opploesningFilter));
message += " > Oppløsning:" + opploesningFilter;
}
var prosjektNavnFilter = $("#orthophotoSearchProjectName").val();
if (prosjektNavnFilter) {
result = result.filter(x => x.attributes.prosjektnavn.toLowerCase().includes(prosjektNavnFilter.toLowerCase()));
message += " > Prosjektnanv:" + prosjektNavnFilter;
}
var flyFirmaFilter = $("#flyfirmasearch").val();
if (flyFirmaFilter) {
result = result.filter(x => x.attributes.flyfirma.toLowerCase().includes(flyFirmaFilter.toLowerCase()));
message += " > Flyfirma:" + flyFirmaFilter;
}
var ortophotoTypeFilter = $("#selectOrthophotoType").val();
if (ortophotoTypeFilter) {
result = result.filter(x => x.attributes.ortofototype == ortophotoTypeFilter);
message += " > Type:" + nib.settings.ortophotoTypesNew[ortophotoTypeFilter];
}
if (message.length > 0) {
if (searchExtent) {
if ($("#innisoekvar").hasClass('hidden')) {
$("#innisoekvar").removeClass("hidden");
}
$('#innisoekvar').html(message);
} else {
if ($("#helesoekvar").hasClass('hidden')) {
$("#helesoekvar").removeClass("hidden");
}
$('#helesoekvar').html(message);
}
} else {
if (searchExtent) {
if (!$("#innisoekvar").hasClass('hidden')) {
$("#innisoekvar").addClass("hidden");
}
$('#innisoekvar').html(message);
} else {
if (!$("#helesoekvar").hasClass('hidden')) {
$("#helesoekvar").addClass("hidden");
}
$('#helesoekvar').html(message);
}
}
if (result.length > 0) {
map.getProjectListHTMLStripped(result, function (html) {
if (searchExtent) {
$('#projectResultList').html(html);
//_resizeRightBottomPanel();
initPhotoTypeHideAndShowBehavior();
} else {
$('#projectResultHele').html(html);
}
});
} else {
if (searchExtent) {
$('#projectResultList').html(map.lang("noHits"));
} else {
$('#projectResultHele').html(map.lang("noHits"));
}
}
$("#loadingDiv").addClass('hidden');
}
function refreshExportListModal() {
$('#exportListPanel').html("");
$.ajax({
url: '/Export/GetExportList',
success: function (viewData) {
$('#exportListPanel').html(viewData); // populate partial view
_translatePartial("exportListPanel");
}
});
}
function open3DMap(config) {
var width = '95%';
var height = ((window.innerHeight * 0.95) - 75) + "px";
var mapLevel = map.getZoomLevel();
//var mapCenter = map.getCenterPoint();
var mapExtent = map.getExtent();
var wkid = map.getSpatialReference().wkid;
//map.getLatLon(mapCenter).then(function (res) {
var mapDialog = new BootstrapDialog({
//message: '',
message: '',
draggable: false,
animate: false,
title: '
3D
'
});
mapDialog.realize();
mapDialog.getModalHeader().css('background-color', '#ffffff');
mapDialog.getModalHeader().css('padding', '5px 15px 0px');
mapDialog.getModalBody().css('padding', '0px 2px');
mapDialog.getModalDialog().css('width', width);
mapDialog.open();
//});
}
function addToHomeScreen() {
if (deferredPWAPrompt !== undefined) {
hideAddToHomeScreenMsg();
deferredPWAPrompt.prompt(); // Show the prompt
}
}
function initPhotoTypeHideAndShowBehavior() {
collapseAndHide();
$('.side.satellitePhotoHeader').click(function () {
$('.side.satellitePhoto').toggle();
if ($(this).find('span:visible').hasClass('glyphicon-chevron-down')) {
$('.side.satellitePhotoHeader .glyphicon-chevron-up').show();
$('.side.satellitePhotoHeader .glyphicon-chevron-down').hide();
} else if ($(this).find('span:visible').hasClass('glyphicon-chevron-up')) {
$('.side.satellitePhotoHeader .glyphicon-chevron-down').show();
$('.side.satellitePhotoHeader .glyphicon-chevron-up').hide();
}
});
$('.side.aircraftPhotoHeader').click(function () {
$('.side.aircraftPhoto').toggle();
if ($(this).find('span:visible').hasClass('glyphicon-chevron-down')) {
$('.side.aircraftPhotoHeader .glyphicon-chevron-up').show();
$('.side.aircraftPhotoHeader .glyphicon-chevron-down').hide();
} else if ($(this).find('span:visible').hasClass('glyphicon-chevron-up')) {
$('.side.aircraftPhotoHeader .glyphicon-chevron-down').show();
$('.side.aircraftPhotoHeader .glyphicon-chevron-up').hide();
}
});
}
function collapseAndHide() {
$('.side.satellitePhoto').toggle();
$('.side.satellitePhotoHeader .glyphicon-chevron-down').show();
$('.side.satellitePhotoHeader .glyphicon-chevron-up').hide();
}
$('.myTab a').click(function () {
$(this).tab('show');
})
function _updateSokeresultat(sjekk) {
document.getElementById("orthophotosearch_cb").value = sjekk;
_searchProjects();
}
function getLanguage(token) {
if (language !== undefined)
{
return language[token];
}
}