kpi is the (frontend) server for KoboToolbox. It includes an API for users to access data and manage their forms, question library, sharing settings, create reports, and export data.
[ ] If you've added code that should be tested, add tests
[ ] If you've changed APIs, update (or create!) the documentation
[x] Ensure the tests pass
[x] Make sure that your code lints and that you've followed our coding style
[x] Write a title and, if necessary, a description of your work suitable for publishing in our release notes
[x] Mention any related issues in this repository (as #ISSUE) and in other repositories (as kobotoolbox/other#ISSUE)
[ ] Open an issue in the docs if there are UI/UX changes
Description
Replaces our old button components with new (final) one. This unifies the looks of the app in most of the views.
Notes
I've replaced most of the legacy buttons (mdl-button, bem.Button, bem.KoboButton, bem.KoboLightButton, bem.KoboTextButton, multiple one-shots) with our Button component. Most notable changes:
Button changes:
Added isUpperCase option (for legacy reasons)
Using classnames utility instead of previous long code
AssetActionButtons (used in Library routes) uses Button now
Touched routes (besides ones touched indirectly by imported component being modified):
Account > Change password
Project > Settings > REST Services
My Library
Project > Data > Map
Project > Data > Reports
Project > Data > Downloads
Project > Data > Table:
Cleaned up Bulk editing UI elements (on top of table)
Buttons within the table
Hide questions dropdown
Settings modal
Project > Landing:
Deploy/Redeploy/Archive button
Manage Translations modal
History button
Collect buttons
Topmost buttons
Encrypt form modal (you need to uncomment some code in formLanding.js to test it)
Project > Settings > Connect Projects
Project > Settings > Media
Form Builder:
Cascade Mixin
Main header and sub-header buttons
Introduced .legacy-modal-tab-button, as a way to remove mdl-button. Didn't want to do it properly (i.e. creating a proper tab component for modals or rewriting some modals completely), to not bloat the scope of this PR.
Badge module now doesn't wrap it's text (it looked weird)
Both of "NEW" buttons
Account menu buttons
Main Header "Log in" button
Fixed :bug: with Subscribe/Unsubscribe button on Public Collections (sometimes unsubscribing didn't update UI properly, leaving user with "Unsubscribe" button that doesn't work)
"Back" button from most modals (see modalHelpers.es6)
Deduplicated .table-meta that were errorenously put (dupplicated) in two files
_kobo.button.scss is still here, becaus it's being used by non-React code and removing it is not trivial
Checklist
Description
Replaces our old button components with new (final) one. This unifies the looks of the app in most of the views.
Notes
I've replaced most of the legacy buttons (
mdl-button
,bem.Button
,bem.KoboButton
,bem.KoboLightButton
,bem.KoboTextButton
, multiple one-shots) with ourButton
component. Most notable changes:Button
changes:isUpperCase
option (for legacy reasons)classnames
utility instead of previous long codeAssetActionButtons
(used in Library routes) usesButton
nowformLanding.js
to test it).legacy-modal-tab-button
, as a way to removemdl-button
. Didn't want to do it properly (i.e. creating a proper tab component for modals or rewriting some modals completely), to not bloat the scope of this PR.modalHelpers.es6
).table-meta
that were errorenously put (dupplicated) in two files_kobo.button.scss
is still here, becaus it's being used by non-React code and removing it is not trivialRelated issues
Built atop #4961