diff --git a/.gitmodules b/.gitmodules
index 56ec0fc5..127b40b9 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -7,3 +7,9 @@
[submodule "tinymce"]
path = externals/tinymce
url = git://github.com/tinymce/tinymce.git
+[submodule "jquery-ui"]
+ path = externals/jquery-ui
+ url = git://github.com/jquery/jquery-ui.git
+[submodule "jquery-timepicker"]
+ path = externals/jquery-timepicker
+ url = git://github.com/trentrichardson/jQuery-Timepicker-Addon.git
diff --git a/adminer/plugin.php b/adminer/plugin.php
index 0cad4c3e..3afcf12f 100644
--- a/adminer/plugin.php
+++ b/adminer/plugin.php
@@ -18,6 +18,7 @@ function adminer_object() {
// specify enabled plugins here
new AdminerDumpZip,
new AdminerDumpXml,
+ new AdminerEditCalendar("\n\n\n\n\n\n\n\n\n", "../externals/jquery-ui/ui/i18n/jquery.ui.datepicker-%s.js"),
new AdminerTinymce("../externals/tinymce/jscripts/tiny_mce/tiny_mce_dev.js"),
new AdminerFileUpload(""),
new AdminerSlugify,
diff --git a/externals/jquery-timepicker b/externals/jquery-timepicker
new file mode 160000
index 00000000..ec1a143b
--- /dev/null
+++ b/externals/jquery-timepicker
@@ -0,0 +1 @@
+Subproject commit ec1a143b5c56578aab05d8975b3663fa9bcba72b
diff --git a/externals/jquery-ui b/externals/jquery-ui
new file mode 160000
index 00000000..c44818fc
--- /dev/null
+++ b/externals/jquery-ui
@@ -0,0 +1 @@
+Subproject commit c44818fccaeb4f41fdb8b8a00662169a4258b78c
diff --git a/plugins/edit-calendar.php b/plugins/edit-calendar.php
new file mode 100644
index 00000000..1565119e
--- /dev/null
+++ b/plugins/edit-calendar.php
@@ -0,0 +1,48 @@
+\n\n\n\n", $langPath = "jquery-ui/i18n/jquery.ui.datepicker-%s.js") { //! insert by JavaScript to achieve HTML validity
+ $this->prepend = $prepend;
+ $this->langPath = $langPath;
+ }
+
+ function editInput($table, $field, $attrs, $value) {
+ static $calendar = false;
+ if (ereg("date|time", $field["type"])) {
+ if (!$calendar) {
+ $calendar = true;
+ echo $this->prepend;
+ if ($this->langPath && function_exists('get_lang')) { // since Adminer 3.2.0
+ $lang = get_lang();
+ $lang = ($lang == "zh" ? "zh-CN" : ($lang == "zh-tw" ? "zh-TW" : $lang));
+ if ($lang != "en" && file_exists(sprintf($this->langPath, $lang))) {
+ printf("\n", $lang);
+ echo "\n";
+ }
+ }
+ }
+ $dateFormat = "changeYear: true, dateFormat: 'yy-mm-dd'"; //! yy-mm-dd regional
+ $timeFormat = "showSecond: true, timeFormat: 'hh:mm:ss'";
+ return "";
+ }
+ }
+
+}