Before, you could leave a configuration page without knowing if you saved your changes or not.
Now, there is an alert poping up if you have unsaved changes. It will ask you if you want to stay on the page and save your changes or leave the page and loose your changes.
See #739
There is now an object to manipulate user queries. It allows to move logic to handle those from the view and the controller in the model.
Thus making the view and the controller easier to read.
I introduced a new interface to start using dependency injection. There is still some rough edges but we are moving in the right direction.
The new object is fully tested but it still need some improvements, for instance, it is still tied to the search object.
There might be a better way to do that.
I did not fix the call in the previous commit. I hope this one is the last change needed.
We definitely need a templating engine so we could use the same controller to output different things.
This will remove code duplication between the api and the web interface.
It will allows us to build other type of api, and also refactor the rss feed as a different view of the same dataset.
Since the internal of the listWhere method was changed, the API wasn't working. It was still calling the method with the old parameters.
I didn't test it but now, it should work.
It is now possible to combine multiple keywords to do a search. The separation of concern is better now since the search extraction is not done in the DAO anymore.
At the moment, a multiple keyword search is stored as this. It could be nice to have it rendered differently in the search page to make it more readable.
At the moment, there is a problem with search enclosed by ". Same search works well when enclosed by '.
Before, when the status change was too quick, sometimes, articles weren't removed from the view.
Now they are removed by adding a statement that grabs past articles with specific properties and remove them.
See #738
Before, for shares that don't need options, only a button to remove it was visible. It was source of confusion for users.
I changed the look of those shares by using the same layout as others (minus the help). As there is no configuration possible for the url, the field is disabled but it is possible to change the name of the share.
See #787