diff --git a/frontend-js/src/main/js/Admin.js b/frontend-js/src/main/js/Admin.js
index 9e7a1dbd2ae0b51b285a243ebe83a924ff264256..2a6bd0e150fcc43ac274e4cf7c342307c04063e7 100644
--- a/frontend-js/src/main/js/Admin.js
+++ b/frontend-js/src/main/js/Admin.js
@@ -47,12 +47,12 @@ Admin.prototype._createGui = function() {
   var headerDiv = Functions.createElement({
     type : "div"
   });
-  new Header({
+  self.setHeader(new Header({
     element : headerDiv,
     customMap : null,
     project : self.getProject(),
     adminLink : false,
-  });
+  }));
   self.getElement().appendChild(headerDiv);
 
   var panels = [ {
@@ -162,6 +162,7 @@ Admin.prototype.init = function() {
   for (var i = 0; i < this._panels.length; i++) {
     promises.push(this._panels[i].init());
   }
+  promises.push(this.getHeader().init())
   return Promise.all(promises);
 };
 
@@ -173,4 +174,12 @@ Admin.prototype.getConfiguration = function() {
   return this._configuration;
 };
 
+Admin.prototype.setHeader = function(header) {
+  this._header = header;
+};
+
+Admin.prototype.getHeader = function() {
+  return this._header;
+};
+
 module.exports = Admin;
diff --git a/frontend-js/src/main/js/gui/admin/EditProjectDialog.js b/frontend-js/src/main/js/gui/admin/EditProjectDialog.js
new file mode 100644
index 0000000000000000000000000000000000000000..9fcac9d66362facfb6c313e9bf2b5c5fd4eef811
--- /dev/null
+++ b/frontend-js/src/main/js/gui/admin/EditProjectDialog.js
@@ -0,0 +1,34 @@
+"use strict";
+
+/* exported logger */
+
+var AbstractGuiElement = require('../AbstractGuiElement');
+var GuiConnector = require('../../GuiConnector');
+
+var functions = require('../../functions');
+var logger = require('../../logger');
+
+function EditProjectDialog(params) {
+  AbstractGuiElement.call(this, params);
+  var self = this;
+}
+
+EditProjectDialog.prototype = Object.create(AbstractGuiElement.prototype);
+EditProjectDialog.prototype.constructor = EditProjectDialog;
+
+EditProjectDialog.prototype.destroy = function() {
+  $(this.getElement()).dialog("destroy");
+};
+
+EditProjectDialog.prototype.open = function() {
+  var self = this;
+  var div = self.getElement();
+  if (!$(div).hasClass("ui-dialog-content")) {
+    $(div).dialog({
+      title : self.getProject().getProjectId(),
+    });
+  }
+  $(div).dialog("open");
+};
+
+module.exports = EditProjectDialog;
diff --git a/frontend-js/src/main/js/gui/admin/MapsAdminPanel.js b/frontend-js/src/main/js/gui/admin/MapsAdminPanel.js
index 3d453e5cd3f58ad7ebc44ebb05cd5f80c3fe41ca..2ec6c062ab04fec003deb257d5858c03d97ad838 100644
--- a/frontend-js/src/main/js/gui/admin/MapsAdminPanel.js
+++ b/frontend-js/src/main/js/gui/admin/MapsAdminPanel.js
@@ -3,6 +3,7 @@
 /* exported logger */
 
 var AbstractAdminPanel = require('./AbstractAdminPanel');
+var EditProjectDialog = require('./EditProjectDialog');
 
 var logger = require('../../logger');
 
@@ -116,7 +117,7 @@ MapsAdminPanel.prototype.init = function() {
 MapsAdminPanel.prototype.projectToTableRow = function(project) {
   var self = this;
   var disease = self.getHtmlStringLink(project.getDisease());
-  var organism =  self.getHtmlStringLink(project.getOrganism());
+  var organism = self.getHtmlStringLink(project.getOrganism());
 
   var row = [ project.getProjectId(), // 
   project.getName(), //
@@ -167,12 +168,28 @@ MapsAdminPanel.prototype.onAddClicked = function() {
 };
 MapsAdminPanel.prototype.onRefreshClicked = function() {
   var self = this;
-  return ServerConnector.getProjects(true).then(function(projects){
+  return ServerConnector.getProjects(true).then(function(projects) {
     return self.setProjects(projects);
   });
 };
+
 MapsAdminPanel.prototype.showEditDialog = function(id) {
-  return Promise.reject(new Error("Not implemented"));
+  var self = this;
+  GuiConnector.showProcessing();
+  return ServerConnector.getProject(id).then(function(project) {
+    var dialog = new EditProjectDialog({
+      element : Functions.createElement({
+        type : "div"
+      }),
+      project : project,
+      customMap : null,
+    });
+    dialog.open();
+    GuiConnector.hideProcessing();
+  }).then(null, function(error) {
+    GuiConnector.hideProcessing();
+    Promise.reject(error);
+  });
 };
 MapsAdminPanel.prototype.removeProject = function(id) {
   return Promise.reject(new Error("Not implemented"));
diff --git a/frontend-js/src/test/js/gui/admin/EditProjectDialog.js b/frontend-js/src/test/js/gui/admin/EditProjectDialog.js
new file mode 100644
index 0000000000000000000000000000000000000000..a1859b994833f4f504ba43a5f831f8b17a1953c6
--- /dev/null
+++ b/frontend-js/src/test/js/gui/admin/EditProjectDialog.js
@@ -0,0 +1,32 @@
+"use strict";
+
+/* exported logger */
+
+var EditProjectDialog = require('../../../../main/js/gui/admin/EditProjectDialog');
+var GuiMessageError = require('../../../../main/js/gui/GuiMessageError');
+var MiriamType = require('../../../../main/js/map/data/MiriamType');
+var logger = require('../../logger');
+
+var assert = require('assert');
+
+describe('EditProjectDialog', function() {
+
+  it('open', function() {
+    var dialog;
+    var project;
+    return ServerConnector.getProject().then(function(result) {
+      project = result;
+      return ServerConnector.getConfiguration();
+    }).then(function(configuration) {
+      dialog = new EditProjectDialog({
+        element : testDiv,
+        project : project,
+        customMap : null,
+      });
+      return dialog.open();
+    }).then(function() {
+      dialog.destroy();
+    });
+  });
+
+});
diff --git a/frontend-js/src/test/js/gui/admin/ElementExportPanel-test.js b/frontend-js/src/test/js/gui/admin/MapsAdminPanel-test.js
similarity index 100%
rename from frontend-js/src/test/js/gui/admin/ElementExportPanel-test.js
rename to frontend-js/src/test/js/gui/admin/MapsAdminPanel-test.js