Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • MuirisOG 382 posts 1284 karma points
    Feb 16, 2017 @ 15:55
    MuirisOG
    1

    Testing formulate

    Hi Nicholas

    a colleague has been evaluating Formulate and come up with a comprehensive list of items.

    Would it be okay to post this feedback here?

    Thanks Muiris

    PS I myself evaluated Umbraco's own form builder but unfortunately it looks like I won't be able to use it because we are stuck on WebForms for the moment.

  • Nicholas Westby 2054 posts 7100 karma points c-trib
    Feb 16, 2017 @ 16:12
    Nicholas Westby
    0

    The more feedback, the better!

  • MuirisOG 382 posts 1284 karma points
    Feb 16, 2017 @ 16:30
    MuirisOG
    1

    Nicholas

    for my own part, I would like to know if there are any issues regarding SQL Injection if the data is stored into a database table.

    Here are the comments from my colleague (he will set up his own account here shortly):

    It might read like a wish list but there are issues too.

    Some of what I noted is already in the issue tracker. https://github.com/rhythmagency/formulate/issues

    General Impression

    Formulate forms look and behave far better than the forms package on our old CMS. The main things missing, are CAPTCHA (Issue #2) and the ability to copy forms (Issue #18). However, the emails can be difficult to read and the submission lists difficult to compare.

    UI

    • The Rotating + to x icon was confusing at first (Issue #77). I thought it looked like Add and Delete.
    • The pointer over expand and delete buttons (Issue #80) doesn’t show they’re clickable.
    • I’m not sure in what order Data Values are presented in a picker (Issue #73) but I’d expect it to be alphabetical.
    • There’s an occasional stack overflow in Tiny MCE when editing Rich Text fields.
    • Currently selected validators aren’t persisted in the picker so picking a new one wipes out those already picked unless all are picked again. That behaviour may be intentional but it wasn’t expected.
    • Dragging left to select text in some fields (e.g. Create Folder, Layout, Data Value or Validation) closes the panel instead.
    • Choosing an orientation for radio button lists doesn’t appear to do anything except set a class. Am I expected to implement this myself in CSS?
    • Saving a Handler switches to the Form tab.
    • I can’t see all form submissions (Issue #82). There’s no scrollbar. Update: Already fixed
    • It’s possible to create a folder as a child of a form. This may also apply to folders in other trees but I haven’t tested those. Steps to reproduce:
      1. Click a form.
      2. Quickly click the ellipsis on Forms (while the tree refresh animation is playing).
      3. Click Create Folder from the menu.
      4. Enter a name and click Create Folder button.
      5. The folder will be created as a child of the selected form instead of Forms.

    If you refresh now, you’ll find that you can’t expand the tree of the affected form. I had to locate and delete the errant folder’s JSON file from the file system.

    /more...

  • MuirisOG 382 posts 1284 karma points
    Feb 16, 2017 @ 16:33
    MuirisOG
    1

    Validation

    Regular expressions give Formulate scope for better validation than the forms package in our old CMS. Prepending ^$| to expressions allows them to be optional.
    I was surprised at the omission of maxsize. Perhaps this is intended to be implemented using regex validation, which I’ve done along with max word count so bonus.

    • Comparison validation, slated for a future release, would be nice but it's not essential.
    • How can we require at least 1 selection from a checkbox list? I tried a mandatory validator and regex ^.+$

    My guess is that it’s trying to test the group’s value instead of the individual items.

    • I would very much like multi-field conditional validation, where validation of one field is dependent on the value of another. e.g. an ‘if other, please specify’ type of field is only required when ‘other’ is selected from a list of options. Another example would be where the appropriate email, telephone or address fields are only required depending on the selected value or values of a ‘preferred method of contact’ or ‘how would you like us to respond’ list. Perhaps this will come naturally with Composite Fields (Issue #61)
    • I don’t know whether ‘Allow field to be blank’ would be better as an option of a field, an option of a validator, or part of the expression so I’ll just throw it out there anyway for comment but not as a request.

    /more...

  • MuirisOG 382 posts 1284 karma points
    Feb 16, 2017 @ 16:33
    MuirisOG
    1

    Emails

    Emails are plain text. This is no bad thing. Logos are nice but we can live without them. I’m liking multiple handlers with specific fields. This lets us send parts of a form to different departments. e.g. Equal Opportunities monitoring.

    • Fields are returned in the order of completion (Issue #68) and not in the order defined in the form. This is especially problematic where groups of fields can become mixed up. e.g. a change of tenancy form with four sets of contact details (landlord/agent, property, tenant, previous tenant) which can become intermingled. Update: Already fixed and planned for the next release.
    • How do we get Heading and Rich Text fields to display in emails? They break up blocks of fields nicely in forms but are absent from emails. Some text may also be a statement that we ask people to agree to so is an essential part of the email. Headings at least, even plain text with double line breaks, would enhance the readability of emails.

    /more...

  • MuirisOG 382 posts 1284 karma points
    Feb 16, 2017 @ 16:36
    MuirisOG
    1

    Other Features

    • Can handlers be selected in configurations (Issue #50) to reuse common forms with different handlers? We have many copies of a standard contact form that are emailed to different people. I was initially hoping to set this up as one form, two layouts (English and Welsh) and many configurations (one for each combination of layout and handler).
    • Can forms be copied? (Issue #18). This is linked to the point above. If handlers have to be picked per form then multiple copies of forms may be required. A JSON file copy and rename (Issue #45) helped here but it would be nice if this could be done from within the system.
    • Is it possible to change the type of a Data Value e.g. from List to List Function without locating and updating the forms it is used in?
    • Is it possible to re-order a Data Value List without deleting and re-adding items? e.g. if adding a new item to an alphabetised list. Drag and drop would be handy here, like re-ordering fields.
    • Could there be a ‘sort alphabetically’ (by text) button on lists? That may just be me being lazy but it would be nice.
    • What is the Text Constant field type for? I don’t see it in layouts or emails.
    • Angularjs directives aren’t prefixed data- so don’t pass w3c HTML validation. It makes it more difficult to check our own code for errors.
    • I find there’s a certain amount of repetition, particularly with handlers. Would it be possible to set defaults, e.g. the from email address? I like the idea of settings (Issue #43) in general. Perhaps defaults could become part of this.
    • When it came to styling (Issue #38), I found it necessary to inspect the rendered form to identify appropriate classes. Is there some reference document I missed?
    • There’s no audit trail (Issue #51)
    • Documentation in general is rather sparse (Issue #76, #40, #38, #36,#34, #32, #31). I know the system is extensible and that may be the answer to some of my questions here but I’ve no idea how it all works.

    /more...

  • MuirisOG 382 posts 1284 karma points
    Feb 16, 2017 @ 16:41
    MuirisOG
    1

    Questions I think I’ve been able to answer myself

    • How to set number of rows in a text area field? You don’t. Set CSS height instead. textarea.formulate__control
    • How to change colour of error messages? Again, CSS .formulate__error-msg

    Things we have yet to do in our implementation of Formulate

    • Style text area height, error message colour checkbox margin and radio button list orientation. The rest works great as Bootstrap defaults.

    • Create List Functions where values could come from existing data and could update automatically e.g. School Names.

    • Integrate Google Analytics. I’m not yet sure how to do this but I expect it has something to do with hooking into an event on successful submission (Issue #76).

    That's it!

    I hope we haven't blown you away with all of this, and we are finding the package really useful!

  • Nicholas Westby 2054 posts 7100 karma points c-trib
    Feb 16, 2017 @ 17:12
    Nicholas Westby
    0

    That is an AWESOME list of feedback! Thank you!

    I will try to respond to everything this weekend (no time at the moment, I'm afraid).

    If you or your colleague are interested, I would love to have a few more contributors to the core of Formulate. I have had lots of what you are mentioning on my own wish list, but simply no time time implement all of it.

  • MuirisOG 382 posts 1284 karma points
    Feb 20, 2017 @ 15:55
    MuirisOG
    0

    Thanks Nicholas, glad to be able to offer some feedback.

    Myself and my colleague work for local government in the UK and at the moment, our time is completely spent transferring from our old CMS to Umbraco - almost 12 years work - a massive undertaking, and a huge learning curve.

    I'm hoping that when we come up for air, and have Umbraco live and on a steady keel, we can contribute more to the Umbraco community.

    Thanks Muiris

  • Nicholas Westby 2054 posts 7100 karma points c-trib
    Feb 21, 2017 @ 03:11
    Nicholas Westby
    0

    for my own part, I would like to know if there are any issues regarding SQL Injection if the data is stored into a database table.

    There should be no issues with SQL injection. I'm well aware of the vulnerability, and have built queries in such a way that SQL injection should be impossible.

    the emails can be difficult to read

    Just created this ticket: Support HTML Emails

    However, it is currently possible to create your own submission handler (e.g., one that sends emails in the exact way you prefer). I you have specific ideas for how to increase the readability of emails, please feel free to submit a feature request.

    the submission lists difficult to compare

    I suspect you are talking about how the fields are presented vertically rather than horizontally in a traditional table. This was an intentional choice, given how many fields tend to appear in a typical form.

    There is the option to export to CSV, which when opened in Excel is easier to read. I am also open to suggestions for how to improve this. I have an idea or two myself, but likely won't get to them anytime soon as the CSV option typically works well.

    The Rotating + to x icon was confusing at first (Issue #77). I thought it looked like Add and Delete.

    I agree that could be confusing. Open to suggestions. If you see better icons, that might be a good place to start: https://icomoon.io/app/#/select

    The pointer over expand and delete buttons (Issue #80) doesnt show theyre clickable.

    As you've correctly noted, that is intended to be addressed as part of issue #80.

    Im not sure in what order Data Values are presented in a picker (Issue #73) but Id expect it to be alphabetical.

    That has been bothering me too. Hope to get to issue 73 that soon.

    Theres an occasional stack overflow in Tiny MCE when editing Rich Text fields.

    I'd be curious to know more about this in an issue report. I am aware of an issue where RTE's don't like to be dragged, but since saving the form works around that I haven't invested any time in addressing it. Would be good if you created an issue though so at least somebody can snag it if they find they have time.

    Currently selected validators arent persisted in the picker so picking a new one wipes out those already picked unless all are picked again. That behaviour may be intentional but it wasnt expected.

    Others have mentioned this to me as well. I'd like to improve that, but it's not super high on my priority list. Open to a pull request (though I'd recommend creating an issue soon so more eyes can be aware of it and possibly opt to do the pull request).

    Dragging left to select text in some fields (e.g. Create Folder, Layout, Data Value or Validation) closes the panel instead.

    Not entirely sure I'm interpreting this correctly, but if I am it sounds like a core bug. An bug report with a video capture or annotated screenshot might help to clarify this.

    Choosing an orientation for radio button lists doesnt appear to do anything except set a class. Am I expected to implement this myself in CSS?

    Yes, this is intended to be done purely with CSS. I've been thinking of included a basic set of CSS styles, but I also don't want to encourage people to overly rely on those CSS styles (the forms should be styled for your current website theme).

    Saving a Handler switches to the Form tab.

    Haven't figured out a way around this, though I think I have another task to split out handlers anyway, at which point this would become moot.

    I cant see all form submissions (Issue #82). Theres no scrollbar. Update: Already fixed

    Indeed, it has been fixed.

    Its possible to create a folder as a child of a form. This may also apply to folders in other trees but I havent tested those.

    Interesting. Definitely not intended. Could you submit an issue report for that?

  • Nicholas Westby 2054 posts 7100 karma points c-trib
    Feb 21, 2017 @ 03:19
    Nicholas Westby
    0

    I was surprised at the omission of maxsize. Perhaps this is intended to be implemented using regex validation

    Yep, can be done with regex. Would probably be good to include such a regex with the sample validations I hope to add at some point: https://github.com/rhythmagency/formulate/issues/24

    Would be something like this (assuming a max length of 75):

    ^.{0,75}$
    

    However, I would be open to adding a new category of validation (i.e., "max length") if somebody were to submit a pull request.

    How can we require at least 1 selection from a checkbox list?

    Mandatory validation should work. Sounds like it's not, so a bug report would be appreciated.

    I would very much like multi-field conditional validation

    This could get super complicated, fast. I'd be open to options, though when things start straying down this direction, I tend to simply start customizing Formulate. That is, I'll write some JavaScript that looks for a field called "contactMethod". When set to "Email", I handle the form in one way; when set to "Phone", I handle the form in a different way.

    There are probably a few things I could do to help facilitate this from the Formulate core side (e.g., expose a "value changed" JavaScript event), so would love to collaborate with you on this to figure out what would be most useful.

    I dont know whether Allow field to be blank would be better as an option of a field, an option of a validator, or part of the expression so Ill just throw it out there anyway for comment but not as a request.

    I usually just build my regular expressions to allow for blanks. If I want something to be mandatory, I select a mandatory validation.

  • Nicholas Westby 2054 posts 7100 karma points c-trib
    Feb 21, 2017 @ 03:25
    Nicholas Westby
    0

    Create List Functions where values could come from existing data and could update automatically e.g. School Names.

    The built in US States list function is a good example of this: https://github.com/rhythmagency/formulate/blob/1433de6699e2faf525f9fda628632d02a21075db/src/formulate.app/DataValues/Suppliers/Kinds/UsStateSupplier.cs

    It's pretty darn simple.

    Integrate Google Analytics. Im not yet sure how to do this but I expect it has something to do with hooking into an event on successful submission (Issue #76).

    There is an event that you can hook into with Angular. Will hopefully be documented at some point, but it's something like "FormSubmission.OK". This is how we handle analytics.

  • Nicholas Westby 2054 posts 7100 karma points c-trib
    Feb 21, 2017 @ 03:29
    Nicholas Westby
    0

    Emails are plain text.

    https://github.com/rhythmagency/formulate/issues/83

    Fields are returned in the order of completion (Issue #68) and not in the order defined in the form.

    As noted, has been fixed.

    How do we get Heading and Rich Text fields to display in emails?

    Maybe I can include some option on the form submission handler to "include transitory fields in email". Alternatively, you could create your own versions of these fields that get included in emails. Either way, a feature request on the issue tracker would be appreciated.

  • Nicholas Westby 2054 posts 7100 karma points c-trib
    Feb 21, 2017 @ 03:44
    Nicholas Westby
    100

    Can handlers be selected in configurations (Issue #50)

    Hopefully someday, but not very high on my priority list.

    Can forms be copied? (Issue #18).

    This is probably one of those things that I'll probably implement someday out of necessity, but I don't have a clear timeline.

    Is it possible to change the type of a Data Value e.g. from List to List Function without locating and updating the forms it is used in?

    That would be a neat feature. Probably more complicated than it appears. The best place to start would be to submit a feature request.

    Is it possible to re-order a Data Value List without deleting and re-adding items?

    Would definitely like to add drag drop to that. If you submit a feature request, it will be more likely to be addressed sooner.

    Could there be a sort alphabetically (by text) button on lists?

    Makes a lot of sense. Can you submit a feature request?

    What is the Text Constant field type for? I dont see it in layouts or emails.

    I use it to send constant values to web API's: https://github.com/rhythmagency/formulate/blob/2301bfcd6f3546be9ddc5d45ceb688250480e51d/src/formulate.app/Forms/Fields/TextConstant/TextConstantField.cs#L16

    Angularjs directives arent prefixed data- so dont pass w3c HTML validation. It makes it more difficult to check our own code for errors.

    I assume you are talking about the attribute directives, though I suppose you could also be talking about element directives. Can you clarify this in an issue report?

    I find theres a certain amount of repetition, particularly with handlers. Would it be possible to set defaults, e.g. the from email address? I like the idea of settings (Issue #43) in general. Perhaps defaults could become part of this.

    This might be best implemented as events that allow you to modify the form itself (e.g., a form creation event that allows you to set defaults). A feature request would help us to explore these options in more depth.

    When it came to styling (Issue #38), I found it necessary to inspect the rendered form to identify appropriate classes. Is there some reference document I missed?

    That's pretty much your best bet for now. I'm on the fence; either I'll add some example CSS, or add a bunch of CSS snippets in the form of documentation.

    Theres no audit trail (Issue #51)

    Definitely want to add that. I you have some particular events you want to see in the audit trail, please mention them on that ticket.

    Documentation in general is rather sparse

    Agreed. Perhaps it would be better if I focused more on documentation than on features. That might help the community to start contributing code themselves.

    Though, now that you've figured out a few things yourself, I would invite you to add some documentation yourself. The documentation website is itself open source and open to contributions: http://www.formulate.rocks/

    You can create documentation by submitting pull requests for this branch: https://github.com/rhythmagency/formulate/tree/gh-pages

  • Nicholas Westby 2054 posts 7100 karma points c-trib
    Feb 21, 2017 @ 03:46
    Nicholas Westby
    0

    Thanks again for all the feedback. Please let me know if I missed responding to anything in particular that you wanted a response to.

  • LeaTark 13 posts 94 karma points
    Feb 24, 2017 @ 14:36
    LeaTark
    0

    I think that comprehensively covers all the points, thank you.

    Although, when I mentioned readability and ease of comparison, I was referring to the lack of headings and variable order of fields. The latter is the more important and you've already fixed it so great. Thanks again.

Please Sign in or register to post replies

Write your reply to:

Draft