We had some problems recently with changes in en.yml not being picked up
by i18n-js to be included in all.js. There have been some patches for
the current version that have an impact on that:
578555f57edb3cdf82aaa88b206644
Trying it out locally, the updated i18n-js gem works while the old
version doesn't update the Javascript translations when new keys are
added. To reproduce the issue, you can add a new key in `en.yml` and
reference it from an Angular template in `app/assets/javascripts/`. The
old version complained about a missing translation until you ran:
```
bundle exec rake tmp:cache:clear
```
We don't need to do that any more.
Now we ask the dev to create the "ofn" user as precondition. This is
way easier than developing a script that fits all possible setups.
It also stops requiring a particlar Postgres version. Although in
production we use 9.5 it is very unlikely we will use any
version-specific feature in the near future. This should make it a bit
easier for new devs to set up their environment.
The scope for customersCtrl did not have access to the sorting
preferences stored in the nested ColumnsCtrl scope. To address this,
the page has been changed to use a new set of sorting preferences
declared in the customersCtrl scope itself.
Also, these sorting preferences are now stored in an object. This
enables the parent scope to see changes to the sorting preferences which
are done via the nested ColumnsCtrl scope,
The "Bulk Order Management" page is also affected by the same scoping
issue. Once this page is fixed, we can remove remnants of the sorting
preferences initialized in ColumnsCtrl.
Currently, we always toggle "reverse" when triggering a sort.
If "reverse" is initially set to false, triggering a sort for the first
time then toggles this to true. The effect is that, the first time that
sorting is done, the rows are sorted in reverse order.
This is not intuitive - they should be sorted in ascending order first.
There's no point of using Code Climate if most of its checks are
disabled. Now it scores our codebase with an A and reports just 2 code
smells, 64 duplications and 14 other issues. That couldn't farther from
reality. If we care about the architecture and maintainability of our
app, this is a must.
To transition towards enabling all default checks, I started with
scss-lint, duplication and method-complexity. This doesn't mean will
have to fix them all straight away as we'll add the current violations
to the `.rubocop_todo.yml` but it'll point us the parts where we should
focus our efforts.