Disable Multi-Row Editing for Specific Fields?
Disable Multi-Row Editing for Specific Fields?
Is it possible to disable multi-row edit support only for specific fields? Ideally I'm looking for a way that wouldn't just block the multi-row edit after the user enters data but instead inform the user at the form level that that field is unavailable for multi-row editing (but still available for single-row edits). Does this exist in Editor 1.5.6/DT 1.10.11? Is it planned for a future release?
Thanks!
This question has an accepted answers - jump to answer
This discussion has been closed.
Answers
Hi,
Thanks for your question. I'm afraid there isn't an option for that built in at the moment - to be honest I think its the first time I've had such a feature request and I hadn't considered this situation before.
What you could do is listen for
initEdit
and check how many rows are being edited (modifier()
androws()
-table.rows( editor.modifier() ).count()
for example) - if multiple then usehide()
to hide the fields you don't want to be multi-row edited -show()
to make them visible on a single row edit).Regards,
Allan
A common use-case that I think will require this functionality at some point is in editing a unique database field.
For example, if I want to edit a
SerialNum
orLicensePlateNumber
field.Hiding unique fields wouldn't work because it would disallow edits of sequences. For example, I want to set the
SerialNum
field of 10 rows to the values 1,2,3...10 (which Editor supports nicely).Perhaps setting the field description to "Cannot set multiple rows to the same value"?
Is leaving the field in its "Multiple values" UI state not an option? You are basically looking for a way to force the multiple values to remain as is, and not have an option to click on it to modify the value, but at the same time hiding it isn't valid either?
I can see how that might be useful and will look into it for the next release. Thanks for the suggestion!
Allan
From the user's perspective, leaving the "Multiple values" field as is invites them to make an edit that will never succeed.
Unique fields can be edited individually, but what makes sense for multi-row edits? I cannot think of a satisfying UI design that would allow allow these edits.
So what should the user see?
It makes the most sense to me for them to see a message stating that the field supports only single-row edits, customizeable through
language
.The dotted text field looks good as it is now, but make it dimmed (disabled), and with different text. Rather than:
"Multiple values
The selected items contain different values for this input. To edit and set all items for this input to the same value, click or tap here, otherwise they will retain their individual values."
Something like:
"Multiple values
This field can be edited individually, but not as part of a multi-row edit."
Broadly speaking, it seems appropriate for an Editor user to be able to easily distinguish multi- from single- row edits. There can be any number of reasons that could turn up.
Adding
fields.multipleEditable
or similar would solve the immediate concern, and it does make sense to me that certain fields would be non-editable in a multi-row edit for uniqueness and other reasons (perhaps the field is used to calculate values for other fields, etc.) It may be more flexible to make a callback for multi- and single- edits, or to pass in an entire object to set field options for multi- vs single- vs some future other type of edit.Very good point about fields - I hadn't fully comprehended that before, but its fairly obvious now that you restate it - thanks!
I'll add a
fields.multipleEditable
(I prefer your name over mynoMultiEdit
) option for fields in 1.6 and a suitable language option.Regards,
Allan
Hi,
Just a quick update on this. I've committed a new feature to Editor for this which will be included in the 1.6 release that I expect to drop at the start of December. The new option will be called
fields.multiEditable
and a simple screenshot of it being used is attached.Thanks so much to you both for your feedback and suggestions on this!
Regards,
Allan
I noticed that the multiEditable option is not working the way I expected it to work.
When I select an single row and edit it, it still does not let me edit the field that was set to "multiEditable".
I verified that this behavior is also in one of the examples and not just in my own code: https://editor.datatables.net/examples/extensions/rowReorder.html
Allan
Yes, this appears to be a bug that slipped through I'm afraid. {This thread](/forums/discussion/39941) is the one I'm using to track the fix.
Allan