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");