Skip to content

Commit 9de53ba

Browse files
committed
editor templates validation tweak
1 parent c3e6272 commit 9de53ba

File tree

5 files changed

+26
-7
lines changed

5 files changed

+26
-7
lines changed

puckweb/Areas/puck/Views/Shared/EditorTemplates/ContentPicker.cshtml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,9 @@
100100
101101
var init = function (container) {
102102
var validationDummy = container.find(".validationDummy");
103+
validationDummyCounter++;
104+
if (((validationDummy.attr("name")||"").match(/_/g) || []).length < 2)
105+
validationDummy.attr("name", validationDummy.attr("name") + "_" + validationDummyCounter);
103106
validationDummy.attr("data-val-required", "The " + container.parents(".fieldwrapper:first").find(".editor-label label").html() + " field is required.");
104107
container.find(".validationDummySummary").attr("data-valmsg-for", validationDummy.attr("name"));
105108

puckweb/Areas/puck/Views/Shared/EditorTemplates/ImagePicker.cshtml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,9 @@
110110
111111
var init = function (container) {
112112
var validationDummy = container.find(".validationDummy");
113+
validationDummyCounter++;
114+
if (((validationDummy.attr("name")||"").match(/_/g) || []).length < 2)
115+
validationDummy.attr("name", validationDummy.attr("name") + "_" + validationDummyCounter);
113116
validationDummy.attr("data-val-required", "The " + container.parents(".fieldwrapper:first").find(".editor-label label").html() + " field is required.");
114117
container.find(".validationDummySummary").attr("data-valmsg-for",validationDummy.attr("name"));
115118

puckweb/Areas/puck/Views/Shared/EditorTemplates/ListEditor.cshtml

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,14 @@
138138
if (window.debug)
139139
debugger;
140140
var el = $(this);
141-
el.parents(".listeditor:first").find(".validationDummy:last").val("1");
141+
var validationDummy = el.parents(".listeditor:first").find(".validationDummy:last");
142+
if (validationDummy.length > 0) {
143+
validationDummy.val("1");
144+
validationDummyCounter++;
145+
if (((validationDummy.attr("name")||"").match(/_/g) || []).length < 2)
146+
validationDummy.attr("name", validationDummy.attr("name") + "_" + validationDummyCounter);
147+
el.parents(".listeditor:first").find(".validationDummySummary:first").attr("data-valmsg-for",validationDummy.attr("name"));
148+
}
142149
var _selected_container = el.parents(".listeditor:first").find(".selected_content:first");
143150
var elToCopy = template.find(".listeditor_" + escapePropname(toZeroIndex(getPropName())) + " .itemContainer:first");
144151
//console.log("el to copy", elToCopy);
@@ -188,8 +195,7 @@
188195
var form = _selected_container.parents("form:first");
189196
form.removeData("validator");
190197
form.removeData("unobtrusiveValidation");
191-
$.validator.unobtrusive.parse(form);
192-
198+
193199
//trigger container update
194200
copy.find(".containerTrigger").click();
195201
@@ -198,6 +204,9 @@
198204
var editorContainer = $(this);
199205
editorContainer.trigger("puckListEditorUpdate",[editorContainer]);
200206
});
207+
208+
$.validator.unobtrusive.parse(form);
209+
201210
});
202211
203212
});

puckweb/Areas/puck/Views/Shared/EditorTemplates/Tags.cshtml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,9 @@
6969
7070
var init = function (container) {
7171
var validationDummy = container.find(".validationDummy");
72+
validationDummyCounter++;
73+
if (((validationDummy.attr("name")||"").match(/_/g) || []).length < 2)
74+
validationDummy.attr("name", validationDummy.attr("name") + "_" + validationDummyCounter);
7275
validationDummy.attr("data-val-required", "The " + container.parents(".fieldwrapper:first").find(".editor-label label").html() + " field is required.");
7376
container.find(".validationDummySummary").attr("data-valmsg-for",validationDummy.attr("name"));
7477

puckweb/wwwroot/Areas/puck/assets/js/puck.actions.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ var cright = $(".rightarea .content");
77
var cinterfaces = $("body>.main>.interfaces");
88
var cmsg = $(".top .message");
99
var cidCounter = 0;
10+
var validationDummyCounter = 0;
1011
var searchType = '';
1112
var searchRoot = '';
1213
var searchTerm = '';
@@ -687,8 +688,8 @@ var wireForm = function (form, success, fail,submit) {
687688
}
688689
} else {
689690

690-
if (cright.find(".editorContainer:hidden .input-validation-error").length > 0) {
691-
var editorContainers = cright.find(".editorContainer:hidden .input-validation-error").parents(".editorContainer:first");
691+
if (form.find(".editorContainer:hidden .input-validation-error").length > 0) {
692+
var editorContainers = form.find(".editorContainer:hidden .input-validation-error").parents(".editorContainer");
692693
editorContainers.each(function (i) {
693694
var editorContainer = $(this);
694695
editorContainer.show();
@@ -698,8 +699,8 @@ var wireForm = function (form, success, fail,submit) {
698699
});
699700
}
700701

701-
var err_el = cright.find(".input-validation-error:first");
702-
cright.find("[href='#" + err_el.parents(".tab-pane").attr("id") + "']").click();
702+
var err_el = form.find(".input-validation-error:first");
703+
form.find("[href='#" + err_el.parents(".tab-pane").attr("id") + "']").click();
703704
if (err_el.is(":visible")) {
704705
err_el.focus();
705706
} else {

0 commit comments

Comments
 (0)