Commit Graph

637 Commits

Author SHA1 Message Date
Tom Russell
f3fb8f12e0 Fix back button spacing 2019-08-23 12:58:40 +01:00
Tom Russell
8d7f80ed90 Age data fields - view only 2019-08-23 12:58:40 +01:00
Tom Russell
f26aa19051 Sketch out view-only data components 2019-08-23 12:58:40 +01:00
Tom Russell
1997c34470 Avoid dependency loop
- building-view contained BuildingVIew and withCopyEdit
- and imported each data-container
- which each imported withCopyEdit to create their data-container

seemed okay from ts/webpack dev environment
but failed in jest test
2019-08-23 12:58:40 +01:00
Tom Russell
22db157e6e Create (empty) DataContainers for each category
Fields/children will be written as components, rather than generated declaratively.

BuildingEdit will be folded into the withCopyEdit higher-order-component,
hopefully removing some duplicated structure and functionality.
2019-08-23 12:58:40 +01:00
Tom Russell
c7b7174f55 Fix Sidebar use in multi-edit 2019-08-23 12:56:22 +01:00
Tom Russell
a3254544e7 Pull BuildingNotFound out of view/edit 2019-08-23 12:56:22 +01:00
Tom Russell
566b738f91 Fix building edit details on props change
- EditForm owns form state
- fully uncontrolled component
- when props change (e.g. when clicking on another building) the
  component should completely re-render
2019-08-23 12:56:22 +01:00
Tom Russell
44bd5e67d1 Simplify sidebar container - no title 2019-08-23 12:56:22 +01:00
Tom Russell
1ab015e4df Fix duplicate slug 2019-08-23 12:56:22 +01:00
Tom Russell
7301d6efda Fix category block width 2019-08-23 12:56:22 +01:00
Tom Russell
ae0d7855f7 Style edit/view section header 2019-08-23 12:56:22 +01:00
Tom Russell
dec4801688 Category sidebar block styles 2019-08-23 12:56:22 +01:00
Tom Russell
94d158c59e Pull out categories.css 2019-08-23 12:56:22 +01:00
Tom Russell
1c265b828d Declarative categories list 2019-08-23 12:56:22 +01:00
Tom Russell
43f239c853 Render single section in view/edit 2019-08-23 12:56:22 +01:00
Tom Russell
99456e2431 Move building (sidebar) and map components to nested dirs 2019-08-23 12:56:22 +01:00
Tom Russell
f8f2b5e3e8 Collect user pages in nested subdirectory 2019-08-23 12:56:22 +01:00
Tom Russell
b0f9aa3900 DRYer logo 2019-08-23 12:55:15 +01:00
Tom Russell
b0bfe70e9d Move common components to nested directory 2019-08-23 12:55:15 +01:00
Tom Russell
fefdab7ab4 Move frontend pages to nested directory 2019-08-23 12:54:21 +01:00
Tom Russell
a5447e6ee3 Use React.FunctionComponent when typing 2019-08-23 12:52:25 +01:00
Tom Russell
2127521094
Merge pull request #392 from mz8i/feature/63-delete-account-frontend
Feature 63: delete user account (frontend code)
2019-08-23 12:43:53 +01:00
Tom Russell
a35289d9b8
Merge branch 'master' into feature/63-delete-account-frontend 2019-08-23 12:42:03 +01:00
Tom Russell
df902d21a2
Merge pull request #399 from mz8i/feature/61-forgotten-password
Feature 61: forgotten password
2019-08-23 12:39:41 +01:00
Maciej Ziarkowski
7cc358dcb7 Introduce env variable for webapp origin 2019-08-22 15:56:04 +01:00
Maciej Ziarkowski
a3ab275378 Remove nested state from ForgottenPassword 2019-08-22 14:48:51 +01:00
Maciej Ziarkowski
072128268c Add frontend for forgotten password 2019-08-22 14:40:38 +01:00
Maciej Ziarkowski
2791e7673d Rename tsx file to follow naming convention 2019-08-22 10:48:37 +01:00
Maciej Ziarkowski
6d4c514c00 Remove always failing error commited accidentally 2019-08-22 10:29:40 +01:00
Maciej Ziarkowski
2622269f77 Add global error handler 2019-08-21 14:47:44 +01:00
Maciej Ziarkowski
4d27c3b889 Add controller and route for password reset 2019-08-21 14:47:23 +01:00
Maciej Ziarkowski
fc2666364d Add backend services for password reset 2019-08-21 14:46:14 +01:00
Maciej Ziarkowski
4259778224 Add email service and config template 2019-08-21 14:42:27 +01:00
Maciej Ziarkowski
9c67b46f02 Add password reset token database migrations 2019-08-21 14:20:53 +01:00
Maciej Ziarkowski
54bd565cc8 Split /users into routes/controller/service 2019-08-19 14:31:35 +01:00
Maciej Ziarkowski
28ffdcf19e Improve modal popup CSS 2019-08-16 15:40:38 +01:00
Maciej Ziarkowski
4ad62eb196 Add simple CSS to show/hide modal 2019-08-16 15:20:54 +01:00
Maciej Ziarkowski
423f35958d Add delete account action to my-account page 2019-08-16 13:21:12 +01:00
Maciej Ziarkowski
d54cc5df41 Add ConfirmationModal component 2019-08-16 13:20:44 +01:00
Maciej Ziarkowski
90da2a1522 Add user delete API endpoint
The deleted user username will be changed to 'deleted_'
plus the 13 initial characters of the standard format user_id.
Email, hashed password and API key are all cleared for the user.
The endpoint is currently only available through /api/users/me
and only allows a logged-in user to delete their own account.
2019-08-16 11:12:18 +01:00
Maciej Ziarkowski
1901ebad42 Add user delete database migrations
Apart from adding the delete-related columns, this migration replaces
the existing unique constraint on the username with a unique index
which has a WHERE clause, so that deleted usernames need not be unique.
This is to avoid having to implement a special function for generating
unique IDs just to keep the deleted username unique and under 30 chars.
The deleted username can still use e.g. the initial part of the user_id
but the uniqueness is not required.
2019-08-16 11:12:18 +01:00
Tom Russell
cb64457cca
Merge pull request #386 from mz8i/feature/383-refactor-routes
Refactor API and modify routes
2019-08-16 11:11:39 +01:00
mz8i
b5b72e7152
Switch from express app to router in API
Co-Authored-By: Tom Russell <tomalrussell@gmail.com>
2019-08-16 10:57:15 +01:00
Maciej Ziarkowski
185a94b5cb Add user delete API endpoint
The deleted user username will be changed to 'deleted_'
plus the 13 initial characters of the standard format user_id.
Email, hashed password and API key are all cleared for the user.
The endpoint is currently only available through /api/users/me
and only allows a logged-in user to delete their own account.
2019-08-15 16:12:01 +01:00
Maciej Ziarkowski
5336f65ca4 Add user delete database migrations
Apart from adding the delete-related columns, this migration replaces
the existing unique constraint on the username with a unique index
which has a WHERE clause, so that deleted usernames need not be unique.
This is to avoid having to implement a special function for generating
unique IDs just to keep the deleted username unique and under 30 chars.
The deleted username can still use e.g. the initial part of the user_id
but the uniqueness is not required.
2019-08-15 16:08:36 +01:00
Dominic H
35f6eebeb6 Sustainability sub categories for launch #360
- Tested on local db
2019-08-15 14:28:27 +01:00
Maciej Ziarkowski
8b78a74874 Remove unnecessary form action/method
The forms calling the API had an unnecessary form action and method.
This is because the forms have an onSubmit hook calling preventDefault.
The attributes were removed to avoid confusion.
2019-08-15 12:19:43 +01:00
Maciej Ziarkowski
6f4dfa2227 Handle invalid URLs with the frontend 404 page 2019-08-14 14:17:47 +01:00
Maciej Ziarkowski
be564dccea Add JSON API 404 handler 2019-08-14 14:13:14 +01:00