Need More Info
Last Updated: 25 Apr 2024 13:27 by Steve
Steve
Created on: 18 Oct 2023 10:42
Category: Kendo UI for jQuery
Type: Feature Request
1
Email list input (or customisable text-item list input)

Email address lists - and other list inputs for text items - in various apps take text input and render each item in a tag - not unlike the MultiSelect.

A widget in similar form to the MultiSelect could serve this purpose, taking string input from the text input element - as well as being able to filter on active text.

I have rigged a MultiSelect with a view model to perform this function: dojo example. Its not perfect, but seems to work ok.

  • ";", "," and space characters are used as string separators to trigger parsing - and split text e.g. from pasted list
  • a simple email RegEx rejects values that cant be an address
  • email addresses are added to the "available item" list and selected item
  • the available items can be pre-populated according to the context
  • like in the MultiSelect, the pop-up list can be displayed and filtered as the user types
  • the pop-up list can be used to de-select and re-select items, as well as tag clear and "clear all" buttons in the widget
  • similar keyboard support is useful, "Ctrl-A", arrow keys etc.
  • multi and single tag modes

 

6 comments
Steve
Posted on: 25 Apr 2024 13:27

Hi Neli,

I mentioned a ListView as I imagined that it might be a better candidate on which to base my suggested widget functionality, but now I am more familiar with the MultiSelect widget, it could work well as a starting point. I defer to your/Teleriks expertise on Kendo widgets as to whether the suggested functionality would be a worthwhile extension of MultiSelect or ListView functionality or even something to develop as a new widget.

As to the suggested features, I refer again to my rough example on dojo (email input, separators: [",", ";", " "] , RegEx check).

The main widget features:

  • the widget functions primarily as a "free text" input, supporting the collection/capture of multiple string values into a list/datasource
  • has a configurable functionality to separate input text sequences as separate values, e.g. a separator character such as a space or comma
    • options such as key sequence like "Shift-Enter" might be useful in addition to a configurable character
  • as text is typed, the separator key-press triggers the input of the existing text - adding it as a new entry to the widget's input list
  • input values are displayed as tags, like with the MultiSelect

Further desirable features:

  • for editing some existing records in a form, support binding to existing data
    • new text values are added
    • by default, duplicates are not added
    • text input filters existing values
  • support binding a collection of "available values" - but not as a limiting set of values
    • the widget will be bound on initialisation to a union of an optional base set of "known values" and any values previously selected for the data field being edited
    • "known values" - useful or previously used values
      • e.g. email addresses: a user can select from known addresses while still adding new ones
    • when initialised for editing an existing data field, these previously selected fields are selected in the widget
    • new free text values are added to the select list and remain if deselected - easy to reselect
  • support rich, object values, where the text value is a primary field
    • e.g. email addresses: known addresses can have a "display name" and picture URL that can be shown in item templates, but the address field is the primary data field. RegEx pattern match can be bound to field that is used in the item template styling
  • support an optional "Popup" list like that in the MultiSelect
  • support tag and popup list item templates
  • optional RegEx pattern that can reject invalid values
    • or optionally, non-matched items can be added, setting a boolean "matched"/"valid" attribute/property against the input value

Perhaps this is a little too easily implemented with a standard MultiSelect, but for my email input example, at least, this did not seem clean or simple to achieve with MVVM initialisation.

Thanks,

Steven

ADMIN
Neli
Posted on: 28 Feb 2024 09:06

Hello Steve,

To clarify the requirements - the request is for a scenario where input fields are displayed in a ListView. The inputs can be added or removed from the ListView dynamically. Also the user can select from the inputs and the list with the selected values, could be rendered outside of the ListView, for example.

Could you please confirm if this is the expected result. Also, by input fields, do you mean a component such as Kendo TextBox or some kind of non-ediable tag? 

Looking forward to your reply. 

Regards,
Neli
Progress Telerik

Stay tuned by visiting our public roadmap and feedback portal pages! Or perhaps, if you are new to our Kendo family, check out our getting started resources
Steve
Posted on: 21 Feb 2024 12:16

Hi Martin,

Apologies if I wasnt clear. Also, as Im not too practised on Kendo UI, there was a level of guess work without much further investigation on my part, to the feasibility of a better implementation using an existing widget.

The main point was that if this "list input" idea could be implemented easily enough using an existing widget (possibly ListView), I can understand that you would not want to implement a new widget - and additionally, in that case, maybe such an implementation might make a useful example on your demos or documetation for that widget.

ADMIN
Martin
Posted on: 21 Feb 2024 11:40

Hello, Steven,

Thank you for the additional explanation.

While I understand the requirement about formatted tags as in the MultiSelect example you shared, I am not sure how the scenario fits with the ListView. Could you please let me know what I am missing?

Regards,
Martin
Progress Telerik

Stay tuned by visiting our public roadmap and feedback portal pages! Or perhaps, if you are new to our Kendo family, check out our getting started resources
Steve
Posted on: 14 Feb 2024 12:21

Hi Martin,

This originated as I wanted to have an email list input that was better than a text field with comma separated email addresses.

Seeing how some email clients support a dynamic input box that supports text input and renders values in a formatted tag/box - and that similar inputs are used for things like category tag lists for online posts etc, it seemded a good idea for a new input control. This could be potentially data bound to existing data for an "available" values list as well as the current "selected" list and potentially support input of "new" items not in the available list. Though the idea was to work with a simple list of strings and so just work with a simple array output.

I implemented something similar to the linked dojo example. After some further thought, I was guessing that maybe something similar could be better implemented in a ListView. So unless this would be suited to a new control, maybe something like this could be added as an example ListView implementation in documentation or the Demo area.

ADMIN
Martin
Posted on: 25 Oct 2023 08:16

Hello, Steven,

Thank you for submitting the feature request!

Just to clarify, could you please share if you are requesting a new component, or a feature in an already existing one? Some additional information will be highly appreciated.

Looking forward to your reply.

Regards,
Martin
Progress Telerik

Stay tuned by visiting our public roadmap and feedback portal pages! Or perhaps, if you are new to our Kendo family, check out our getting started resources