Initial Search model and interface for CrossRef. You can search CrossRef but the results are not displayed in a pretty fashion yet. Search interface can now adapt to backend source in a very rudimentary way with conditionals. Right now it's set up so that settings.yml has an additonal toggle, with which you can switch backends between plos/crossref.
Fix issues in article_list for PLOS search backend.
Adjust travis's matrix to include both default and PLOS mode, and both CrossRef and PLOS search backends.
Merge branch 'master' into crossref
Extract article from article_list into a partial.
Adjust travis's build matrix to only produce two builds.
Initial conditional integration test, different for PLOS and CrossRef search backend.
Introduces a new SearchResult model, which will present results from CrossRef and PLOS in a unified interface.
Fix style issues.
Introduce a simple Search.find(query) interface, that responds with a unified SearchResult instances and searches a different search backend depending on the configuration.
Merge and resolve merge conflicts with master.
Add a spec for limiting results to specific journals with PLOS's API, and then because of the way this works, i.e. using multiple instances of the fq parameter, going through and fixing all existing PLOS Solr specs/mocks, because WebMock does not support multiple parameters with the same name (https://github.com/bblimke/webmock/pull/318#issuecomment-56276162).
Add CrossRef SearchResult.
Add pagination support to CrossRef's API wrapper.
Remove the BackendService reference from IdController, and replace with a general Regex DOI validation taken from: http://stackoverflow.com/questions/27910/finding-a-doi-in-a-document-or-page which is based on the DOI spec.
Remove get_data_for_viz and the optimization of going to Solr to get metrics data, instead of going to the ALM API. As the Metrics tab of the Report is the first to load, this data will have been requested in any case and will be cached by the time we get to the Visualizations tab.
Remove the BackendService.
Add spec for file/bulk upload in IdController, using a fixture with fake PMID data, as the PLOS API is currently not returning the correct data.
Use ADD as 'method' used by AJAX, instead of SAVE, as the clearer opposite of REMOVE. Adjust specs accordingly.
Refactor Cart model to have SearchResult items, with add and remove methods to add or, remove items accordingly.