diff --git a/Resources/public/mapbender.element.clickcoordinate.js b/Resources/public/mapbender.element.clickcoordinate.js index 0e04123..1dfe66d 100644 --- a/Resources/public/mapbender.element.clickcoordinate.js +++ b/Resources/public/mapbender.element.clickcoordinate.js @@ -130,36 +130,47 @@ this.activate(callback); }, activate: function(callback) { + var lastSrs = $('.inputSrs', this.element).val(); var self = this; var select = $('.inputSrs', this.element); - select.html(''); - var tmp = {}; - for (var i = 0; i < this.options.srsDefs.length; i++) { - tmp[this.options.srsDefs[i].name] = this.options.srsDefs[i].title; - select.append($('').val(this.options.srsDefs[i].name).html(this.options.srsDefs[i].title)); - } - var allSrs = this.mbMap.getAllSrs(); - for (var i = 0; this.options.add_map_srs_list && i < allSrs.length; i++) { - if(!tmp[allSrs[i].name]){ - select.append($('').val(allSrs[i].name).html(allSrs[i].title)); + + if (select.children().length === 0) { + select.html(''); + var tmp = {}; + for (var i = 0; i < this.options.srsDefs.length; i++) { + tmp[this.options.srsDefs[i].name] = this.options.srsDefs[i].title; + select.append($('').val(this.options.srsDefs[i].name).html(this.options.srsDefs[i].title)); + } + var allSrs = this.mbMap.getAllSrs(); + for (var i = 0; this.options.add_map_srs_list && i < allSrs.length; i++) { + if(!tmp[allSrs[i].name]){ + select.append($('').val(allSrs[i].name).html(allSrs[i].title)); + } } + var current = this.mbMap.getModel().getCurrentProj(); + + if(this.options.srsDefs.length){ + select.val(this.options.srsDefs[0].name); + } else { + select.val(current.projCode); + } + + $('input.mapSrs', this.element).val(current.projCode); } - var current = this.mbMap.getModel().getCurrentProj(); - if(this.options.srsDefs.length){ - select.val(this.options.srsDefs[0].name); - } else { - select.val(current.projCode); + + if (lastSrs !== null) { + select.val(lastSrs); } - - $('input.mapSrs', this.element).val(current.projCode); + if (this.options.type === 'element') { this._activateElement(); } else if (this.options.type === 'dialog') { this._activateDialog(); } + initDropdown.call($('.dropdown', this.element).get(0)); this.callback = callback ? callback : null; - + $(document).on('mbmapsrschanged', $.proxy(this._onSrsChanged, this)); $(document).on('mbmapsrsadded', $.proxy(this._onSrsAdded, this)); $('.copyClipBoard', this.element).on('click', $.proxy(this._copyToClipboard, this)); @@ -167,6 +178,7 @@ this.mbMap.map.element.addClass('crosshair'); this._resetFields(); + $('select.inputSrs', self.element).on('change', $.proxy(this._srsChanged, this)); if(!this.mapClickHandler) { diff --git a/Resources/public/mapbender.element.mapcoordinate.js b/Resources/public/mapbender.element.mapcoordinate.js index ee30f65..bb86db8 100644 --- a/Resources/public/mapbender.element.mapcoordinate.js +++ b/Resources/public/mapbender.element.mapcoordinate.js @@ -227,21 +227,32 @@ this.activate(callback); }, activate: function(callback) { + var lastSrs = $('.inputSrs', this.element).val(); var self = this; var allSrs = this.mbMap.getAllSrs(); var select = $('.inputSrs', this.element); - select.html(''); - for (var i = 0; i < allSrs.length; i++) { - select.append($('').val(allSrs[i].name).html(allSrs[i].title)); + + if (select.children().length === 0) { + select.html(''); + for (var i = 0; i < allSrs.length; i++) { + select.append($('').val(allSrs[i].name).html(allSrs[i].title)); + } + var current = this.mbMap.getModel().getCurrentProj(); + select.val(current.projCode); + $('input.mapSrs', this.element).val(current.projCode); + } + + if (lastSrs !== null) { + select.val(lastSrs); } - var current = this.mbMap.getModel().getCurrentProj(); - select.val(current.projCode); - $('input.mapSrs', this.element).val(current.projCode); + + if (this.options.type === 'element') { this._activateElement(); } else if (this.options.type === 'dialog') { this._activateDialog(); } + this.callback = callback ? callback : null; $('.buttonGroup [data-modelname]', this.element).each(function(idx, item){ var $item = $(item); @@ -274,7 +285,6 @@ $('.buttonGroup [data-modelname="InputModel"]', this.element).data('model').activate(); } }, - _copyToClipboard: function(e){ $(e.target).parent().find('input').select(); document.execCommand("copy");