dhuppenkothen / entrofy

Participant selection for workshops and conferences made easy
79 stars 26 forks source link

sanitize column headers #13

Open kelle opened 9 years ago

kelle commented 9 years ago

Error: Syntax error, unrecognized expression: .target#yrs since phd_(-3.037, 4.4]

bmcfee commented 9 years ago

This is because we use raw column headers from the csv input as dom element ids and css classes.

It of course isn't helped by our conversion of numerical values to interval memberships with headers like age_[23.45552, 32.948889) which break CSS pretty hard. Spaces are also problematic for similar reasons

We'll need to find a way to sanitize strings to be safe for use as CSS classes and dom ids. UrlEncode would probably work, but feels a little too clumsy. Maybe someone out there has already solved this problem? I'll do some digging.

kelle commented 9 years ago

I don't completely understand but for the short term, please just be specific about what's allowed and not allowed in csv file. If you state it here, I can update the docs.

On Monday, October 5, 2015, Brian McFee notifications@github.com wrote:

This is because we use raw column headers from the csv input as dom element ids and css classes.

It of course isn't helped by our conversion of numerical values to interval memberships with headers like age_[23.45552, 32.948889) which break CSS pretty hard. Spaces are also problematic for similar reasons

We'll need to find a way to sanitize strings to be safe for use as CSS classes and dom ids. UrlEncode would probably work, but feels a little too clumsy. Maybe someone out there has already solved this problem? I'll do some digging.

— Reply to this email directly or view it on GitHub https://github.com/dhuppenkothen/entrofy/issues/13#issuecomment-145531259 .

kelle (via iOS)

bmcfee commented 8 years ago

This issue may be obviated by the discussion in #12. If we rewrite the interface to avoid exposing/requiring binarized columns, much of this will become simpler.

The real resolution of this will require discussion with a js developer.