diff --git a/ckan/controllers/package.py b/ckan/controllers/package.py
index 961661d1a7b..e8c9037e840 100644
--- a/ckan/controllers/package.py
+++ b/ckan/controllers/package.py
@@ -501,6 +501,7 @@ def edit(self, id, data=None, errors=None, error_summary=None):
errors = errors or {}
vars = {'data': data, 'errors': errors, 'error_summary': error_summary}
+ c.errors_json = json.dumps(errors)
self._setup_template_variables(context, {'id': id}, package_type=package_type)
diff --git a/ckan/public/css/forms.css b/ckan/public/css/forms.css
index 97406579d9f..670e8f9ec1a 100644
--- a/ckan/public/css/forms.css
+++ b/ckan/public/css/forms.css
@@ -139,6 +139,9 @@ form.has-errors .field_error, form.has-errors .error-explanation {
position: relative;
background: transparent url(../images/icons/error.png) left 3px no-repeat; }
+.fieldset_button_error {
+ background: transparent url(../images/icons/error.png) left center no-repeat; }
+
.error-explanation,
#errorExplanation {
background: #fff;
diff --git a/ckan/public/css/style.css b/ckan/public/css/style.css
index 33640224e24..c249424238e 100644
--- a/ckan/public/css/style.css
+++ b/ckan/public/css/style.css
@@ -971,6 +971,7 @@ ul.dataset-edit-nav li a {
display: block;
padding: 7px 0 7px 10px;
margin-bottom: 7px;
+ margin-left: 20px;
border: 1px transparent solid;
}
ul.dataset-edit-nav li a.active,
diff --git a/ckan/public/scripts/application.js b/ckan/public/scripts/application.js
index 61c03ec5f67..1d6ba479054 100644
--- a/ckan/public/scripts/application.js
+++ b/ckan/public/scripts/application.js
@@ -93,6 +93,15 @@
$(e.target).attr('disabled','disabled');
return false;
});
+
+ // Highlight form errors in the tab buttons
+ for (field_id in form_errors) {
+ var field = $('#'+field_id);
+ if (field !== undefined) {
+ var fieldset_id = field.parents('fieldset').last().attr('id');
+ $('#section-'+fieldset_id).addClass('fieldset_button_error');
+ }
+ }
}
var isGroupEdit = $('body.group.edit').length > 0;
if (isGroupEdit) {
diff --git a/ckan/templates/package/edit.html b/ckan/templates/package/edit.html
index 6bd9a39735c..0984f281985 100644
--- a/ckan/templates/package/edit.html
+++ b/ckan/templates/package/edit.html
@@ -11,6 +11,7 @@