Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Major components of the site should be easily added/removed through configuration #483

Open
anselmbradford opened this issue Jul 17, 2014 · 9 comments

Comments

@anselmbradford
Copy link
Member

The bay area pilots and others have requested that the inclusion of major components of the site be configurable through settings. As a start this should target the search filters and provide a means to easily add and remove them site-wide without needing to hunt through the code for dependencies. This might look something like a boolean setting in config/settings.yml for each search filter. When set to true the filter would be included, when set to false the filter would be excluded, filter-specific links would be disabled, tests would be disabled, etc.

@declan
Copy link
Contributor

declan commented Jul 22, 2014

This is interesting. What other major components are we talking about, beyond the search filters?

@anselmbradford
Copy link
Member Author

Right now this would be:

  • Search filters (as you mentioned).
  • Geolocation (if this sounds like a reasonable direction for What is the purpose of the "Services near me" button on the homepage? #471).
  • Possibly possibly the fields shown on a location details view. The data could also be removed from the API directly so it won't show up in ohana-web-search, but there may be circumstances where it's desirable to have ohana-web-search have control over these field's visibility as well. For example, two ohana-web-search interfaces that are interested in different data targets, but are feeding off the same API. Or an ohana-web-search instance may want to include keywords while another may not, as surfaced in Some "Services" fields not showing up #476.

Any other components you are interested in including/excluding?

@monfresh
Copy link
Member

Let's be careful not to take customization too far here. Once we get beyond simple localization of text and logo changes, and into HTML restructuring and conditional disabling of tests, then we need to assess the situation a little more closely. @anselmbradford What exactly was the original ask from the bay area pilots? Did they specifically ask for search filters customization or was that your suggestion?

@anselmbradford
Copy link
Member Author

Search filter customizations were @declan's request. @siruguri asked about adding/removing components of the site through configuration in regard to the pilots, maybe @siruguri can clarify what was desirable to be able to include/exclude here?

@siruguri
Copy link

Hmm... @anselmbradford, I'm not quite sure what I had said, that you were referring to, sorry abt that :) My most recent memory is basically the fdbk from Declan, maybe I talked about wanting to have a more general architectural discussion, about what such a configuration would look like? For example, would there be separate conversations about pluggable backend (search behavior) vs frontend (filters shown) customization?

I agree with @monfresh that we shouldn't take customization too far, maybe starting with where @declan is at, is reasonable.

@declan
Copy link
Contributor

declan commented Jul 22, 2014

This might sound silly since I know I've done nothing but make customization requests for the past six weeks, but I actually agree with @monfresh that it would be possible to take customization too far here.

The client app is really, really good. It's got a smooth UI and a simple code base, and it's been getting better by the week in the brief period of time that I've been using it. While I have made a bunch of customization requests and will probably continue to do so, I really don't want that to interfere too much with your efforts to improve the core application.

Is there currently any yardstick for evaluating how much customization is reasonable? Knowing what's fair game for customization has been an open question for me for the past six weeks and I still don't feel like I have a very good understanding of it. I know this has been frustrating for you at times, so maybe this is a good opportunity to lay out some overall guidelines so that I'm not constantly trying to pull you in a direction you don't want to go.

@declan
Copy link
Contributor

declan commented Jul 22, 2014

I'm going to try to answer my own question about a yardstick here, summarizing from a handful of different conversations over the past weeks. It seems like Ohana Web Search is intended to

  • Work out of the box on Mac and Linux
  • Be customizable by non-coders
  • Only support customizations that most deployments will need

Does that match up with the understanding of everyone involved?

@monfresh
Copy link
Member

Kind of. The basic customization (settings.yml, application.yml, en.yml) should be as simple as possible. Obviously, more complex customizations will require some coding or hiring someone.

Nothing will "work out of the box" on a brand new machine. Installing the app locally has prerequisites, and deploying the app to Heroku requires at least the Heroku toolbelt as mentioned in the Wiki.

I would also add that the base layer should be as simple as possible. For example, we recently simplified the search filters to be 3 simple search fields that everyone knows how to use and that provide a quick way to enter a search term. What we had before was too complex, required about 400 lines of JS, a bunch of logic in the view that was very hard to read and understand, some inefficient code in the controller, and intermittently failing specs.

anselmbradford added a commit that referenced this issue Aug 26, 2014
- Strips whitespace around language code setting so any amount of
spacing can be introduced into the settings and the app won’t silently
not configure the language code URL properly.
- Adds ability to remove all language links and the app won’t break.
Ties into #483.
- Edits language links code comments to be consistent with other
settings in the settings file and adds a space after the colon in the
settings to be consistent with Ruby style guide key/value styling.
anselmbradford added a commit that referenced this issue Aug 26, 2014
- Strips whitespace around language code setting so any amount of
spacing can be introduced into the settings and the app won’t silently
not configure the language code URL properly.
- Adds ability to remove all language links and the app won’t break.
Ties into #483.
- Edits language links code comments to be consistent with other
settings in the settings file and adds a space after the colon in the
settings to be consistent with Ruby style guide key/value styling.
anselmbradford added a commit that referenced this issue Aug 26, 2014
- Strips whitespace around language code setting so any amount of
spacing can be introduced into the settings and the app won’t silently
not configure the language code URL properly.
- Adds ability to remove all language links and the app won’t break.
Ties into #483.
- Edits language links code comments to be consistent with other
settings in the settings file and adds a space after the colon in the
settings to be consistent with Ruby style guide key/value styling.
anselmbradford added a commit that referenced this issue Aug 26, 2014
- Strips whitespace around language code setting so any amount of
spacing can be introduced into the settings and the app won’t silently
not configure the language code URL properly.
- Adds ability to remove all language links and the app won’t break.
Ties into #483.
- Edits language links code comments to be consistent with other
settings in the settings file and adds a space after the colon in the
settings to be consistent with Ruby style guide key/value styling.
anselmbradford added a commit that referenced this issue Aug 28, 2014
- Moves Google Translate initialization to application.js so it’s
applied to all routes.
- Refactors Google Translate Manager to remove polling code and to
integrate Google supplied initialization scripts.
- Refactors language translation link settings:
- Strips whitespace around language code setting so any amount of
spacing can be introduced into the settings and the app won’t silently
not configure the language code URL properly.
- Adds ability to remove all language links and the app won’t break.
Ties into #483.
- Edits language links code comments to be consistent with other
settings in the settings file and adds a space after the colon in the
settings to be consistent with Ruby style guide key/value styling.
- Refactors area above and below search box on homepage so that when
language links are absent the height of the utility area doesn’t
collapse. Also, renames bottom utility area to be more generic.
- Adds translation services section to customization readme.
- Moves google translate manager JS to `util` directory.
- Moves drop-down layout handling code to its own module.
- Capitalizes modules that include creation method for creating a new
instance.
- Adds error handling so if Google script changes container HTML an
error will be thrown.
- Fixes #287 Google Translate cookie wasn’t being set on inside pages.
This commit adds the Google Translate cookie concern to inside pages in
addition to the homepage.
anselmbradford added a commit that referenced this issue Sep 4, 2014
- Moves Google Translate initialization to application.js so it’s
applied to all routes.
- Refactors Google Translate Manager to remove polling code and to
integrate Google supplied initialization scripts.
- Refactors language translation link settings:
- Strips whitespace around language code setting so any amount of
spacing can be introduced into the settings and the app won’t silently
not configure the language code URL properly.
- Adds ability to remove all language links and the app won’t break.
Ties into #483.
- Edits language links code comments to be consistent with other
settings in the settings file and adds a space after the colon in the
settings to be consistent with Ruby style guide key/value styling.
- Refactors area above and below search box on homepage so that when
language links are absent the height of the utility area doesn’t
collapse. Also, renames bottom utility area to be more generic.
- Adds translation services section to customization readme.
- Moves google translate manager JS to `util` directory.
- Moves drop-down layout handling code to its own module.
- Capitalizes modules that include creation method for creating a new
instance.
- Adds error handling so if Google script changes container HTML an
error will be thrown.
- Fixes #287 Google Translate cookie wasn’t being set on inside pages.
This commit adds the Google Translate cookie concern to inside pages in
addition to the homepage.
anselmbradford added a commit that referenced this issue Sep 4, 2014
- Moves Google Translate initialization to application.js so it’s
applied to all routes.
- Refactors Google Translate Manager to remove polling code and to
integrate Google supplied initialization scripts.
- Refactors language translation link settings:
- Strips whitespace around language code setting so any amount of
spacing can be introduced into the settings and the app won’t silently
not configure the language code URL properly.
- Adds ability to remove all language links and the app won’t break.
Ties into #483.
- Edits language links code comments to be consistent with other
settings in the settings file and adds a space after the colon in the
settings to be consistent with Ruby style guide key/value styling.
- Refactors area above and below search box on homepage so that when
language links are absent the height of the utility area doesn’t
collapse. Also, renames bottom utility area to be more generic.
- Adds translation services section to customization readme.
- Moves google translate manager JS to `util` directory.
- Moves drop-down layout handling code to its own module.
- Capitalizes modules that include creation method for creating a new
instance.
- Adds error handling so if Google script changes container HTML an
error will be thrown.
- Fixes #287 Google Translate cookie wasn’t being set on inside pages.
This commit adds the Google Translate cookie concern to inside pages in
addition to the homepage.
@monfresh
Copy link
Member

monfresh commented Sep 7, 2014

Can we close this? I think we came to an agreement that this is not a desired direction.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants