* mark string as html safe before passing to translation instead of bypassing HTML escape using {{{unsafe}}} syntax
* replace ember-i18n with ember-intl
Adds a <SaveButton> component that renders a save button similar to
<NextButton> but using a special icon that helps to distinguish both.
Also removes the block mode for <NextButton> component and some arguments
that aren't needed anymore.
Closes#294
* Adds a loading spinner to form buttons as long as submission is pending.
* Does some refactoring of form navigation buttons.
* Updates expected bundle size.
- Drops floatthead and additional scrollbar
- Makes header and first column sticky
- Refactors code for readability
Sticky header is only working in Firefox. Chrome and Edge does not support `position: sticky` for `<thead>`. Haven't tested Safari.
This also fix a bug if user creates more than one croodle without reloading window
in between. In that case a data fragment is reused which throws.
It's also the first step in dropping {{simple-select}} which is very outdated.
Ember Bootstrap has changed a lot since the very outdated pre 1.0 release
which was used here. Changes are mostly about using composable components
and closure actions.
Also replaces PhantomJS with Chrome in CI cause PhantomJS is also very
outdated and causing test failure not related to any real world issues.
Ember CLI has replaced PhantomJS with Chrome in v2.15.1, which is the
upfollowing minor release to the version currently used.
UX in browser which does not support time input type should be okay know by
validation messages and placeholder. Wasn't even used anymore in latest release.
Affects #90 but does not resolve 'unsafe-inline' requirement cause to
ember-bootstrap (https://github.com/kaliber5/ember-bootstrap/pull/98#discussion_r66586065).
ToDo left:
refactor `datetimes` property of `create-options-datetime` component to
not cause whole list to be updated. This is not only a performance issue
but also UX: e.g. validation state is lost when another item is added.
ToDo:
Label validation state should not be bound to validation state of first element (option)
but to validation state of all elements. If any element has an error label validation state
should be error. Only if all elements are fine, label validation state should also be fine.