Commit Graph

46 Commits

Author SHA1 Message Date
Jordan Knott
76e398488f fix: rewrite the label manager to no longer use useRef
useRef was causing a `readonly` error when trying to overwrite
`ref.current`. Rewrote components to use an Apollo query instead.

fixes #121
2021-09-13 12:44:02 -05:00
Jordan Knott
a188c4b0ca fix: clean up component to fix lint warnings preventing frontend build 2021-09-04 14:08:44 -05:00
Jordan Knott
05799fce90 fix: hide any open popups when closing task details modal 2021-05-10 12:46:46 -05:00
Jordan Knott
8c6a3db0bc deps: upgrade all dependencies 2021-05-02 17:31:24 -05:00
Jordan Knott
5a9a66effe feat: apply new label to task when available 2021-04-30 23:49:12 -05:00
Jordan Knott
167d285d02 refactor: polling is now turned off in development mode 2021-04-30 23:36:58 -05:00
Jordan Knott
04c12e4da9 feat: projects can be set to public 2021-04-30 22:55:37 -05:00
Jordan Knott
3e72271d9b refactor(Project): split out components into their own files 2021-04-30 20:06:05 -05:00
Jordan Knott
bd34f4b3ad feat: change primary font to Open Sans 2021-04-30 16:35:43 -05:00
Jordan Knott
229a53fa0a refactor: replace refresh & access token with auth token only
changes authentication to no longer use a refresh token & access token
for accessing protected endpoints. Instead only an auth token is used.

Before the login flow was:

Login -> get refresh (stored as HttpOnly cookie) + access token (stored in memory) ->
  protected endpoint request (attach access token as Authorization header) -> access token expires in
  15 minutes, so use refresh token to obtain new one when that happens

now it looks like this:

Login -> get auth token (stored as HttpOnly cookie) -> make protected endpont
request (token sent)

the reasoning for using the refresh + access token was to reduce DB
calls, but in the end I don't think its worth the hassle.
2021-04-28 21:38:49 -05:00
Jordan Knott
0760edac80 feat(FilterMeta): auto focus task name search input on popup open 2021-04-28 21:38:49 -05:00
Jordan Knott
f9e6fba552 fix(Projects): set overflow-y to auto on Wrapper 2021-01-05 19:06:49 -06:00
Jordan Knott
f215418be1 fix: fix background not changing on hover in extra menu on sort popup 2021-01-03 17:11:08 -06:00
Jordan Knott
dcf53b9077 feat: add my tasks list view 2021-01-01 22:20:55 -06:00
Jordan Knott
d6101d9221 feat: redesign task due date manager 2021-01-01 14:54:05 -06:00
Jordan Knott
f16cceb0e1 feat: add ui skeleton to Task Details while loading 2020-12-30 19:14:00 -06:00
Jordan Knott
8d3b0bd510 fix: fix flashing on pollInterval 2020-12-23 20:02:38 -06:00
Jordan Knott
0c9ab8abc2 feat: add update polling to relevant views 2020-12-23 15:55:17 -06:00
Jordan Knott
978be2218d fix: fix issue where the Task Details modal would false when changing due date 2020-12-23 13:17:54 -06:00
Jordan Knott
19deab0515 feat: add task activity 2020-12-23 13:15:15 -06:00
FernTheDev
b5fd3b1bf1 refactor: make theme more consistent 2020-12-17 22:56:49 -06:00
Jordan Knott
7b6624ecc3 feat: redesign project sharing & initial registration
redesigned the project sharing popup to be a multi select dropdown
that populates the options by using the input as a fuzzy search filter
on the current users & invited users.

users can now also be directly invited by email from the project share
window. if invited this way, then the user will receive an email
that sends them to a registration page, then a confirmation page.

the initial registration was always redone so that it uses a similar
system to the above in that it now will accept the first registered
user if there are no other accounts (besides 'system').
2020-12-17 22:39:14 -06:00
Nurseiit Abdimomyn
92493deedf refactor: replace moment with dayjs 2020-10-20 16:06:16 -05:00
Cain Watson
a288e06123 feat: add 'complete' sort option 2020-09-30 23:38:01 -07:00
Jordan Knott
4277b7b2a8 feat: add personal projects
personal projects are projects that have no team.

they can only seen by the project members (one of which is whoever first
creates the project).
2020-09-19 20:23:16 -05:00
Jordan Knott
0d4fb6a0d0 fix: member permissions now works correctly 2020-09-19 17:26:02 -05:00
Jordan Knott
e2ef8a1a19 fix: initial access token after install is now set correctly 2020-09-12 03:24:09 -05:00
Jordan Knott
aa5e1c0661 fix: flickering when transitioning to some pages 2020-09-11 14:41:21 -05:00
Jordan Knott
4272fefa28 feat: implement task group actions
- allow sorting specifc task groups
- duplicate task group
- delete all tasks in task group
2020-09-10 23:58:10 -05:00
Jordan Knott
0caa803d27 feat: add notification UI
showPopup was also refactored to be better
2020-09-10 15:31:04 -05:00
Jordan Knott
771d598c04 feat: add task details 2020-09-02 20:27:43 -05:00
Jordan Knott
a9a1576f46 fix: update margin on filter chips 2020-09-02 20:27:22 -05:00
Jordan Knott
66583bb4fb feat: add task sorting & filtering
adds filtering by task status (completion date, incomplete, completion)
adds filtering by task metadata (task name, labels, members, due date)
adds sorting by task name, labels, members, and due date
2020-08-28 23:32:17 -07:00
Jordan Knott
46e724e731 feat: add pre commit hook to lint frontend & fix warnings 2020-08-23 17:29:06 -05:00
Jordan Knott
7bba294897 fix: get correct new postion after dropping task in different list
was getting the current draggable list based on whatever task group
the task was in, ignoring that that task group might be different (when
    the task was dragged to a new list)
2020-08-12 15:23:57 -05:00
Jordan Knott
2e9767f1a0 chore: remove debug console.log statements 2020-08-12 14:44:28 -05:00
Jordan Knott
e64f6f8569 feat: enforce user roles
enforces user admin role requirement for
- creating / deleting / setting role for organization users
- creating / deleting / setting role for project users
- updating project name
- deleting project

hides action elements based on role for
- admin console
- team settings if team is only visible through project membership
- add project tile if not team admin
- project name text editor if not team / project admin
- add redirect from team page if settings only visible through project
  membership
- add redirect from admin console if not org admin

role enforcement is handled on the api side through a custom GraphQL
directive `hasRole`. on the client side, role information is fetched in
the TopNavbar's `me` query and stored in the `UserContext`.

there is a custom hook, `useCurrentUser`, that provides a user object
with two functions, `isVisibile` & `isAdmin` which is used to check
roles in order to render/hide relevant UI elements.
2020-08-11 21:03:21 -05:00
Jordan Knott
5dbdc20b36 chore: rename Citadel to Taskcafe 2020-08-06 20:50:35 -05:00
Jordan Knott
e5bfe9b9ab feature: fix user admin related bugs 2020-07-17 21:55:38 -05:00
Jordan Knott
68fa7aef94 feature: add user project count to Admin component 2020-07-17 19:40:05 -05:00
Jordan Knott
810e74e99f fix: show correct label variant based on setting 2020-07-16 21:57:20 -05:00
Jordan Knott
45a92636cb change: add loading state to project board 2020-07-16 21:14:26 -05:00
Jordan Knott
2cf6be082c feature: add first time install process 2020-07-16 19:40:23 -05:00
Jordan Knott
1e9813601e bugfix: fix user checklist item toggle completion 2020-07-13 16:21:37 -05:00
Jordan Knott
a20ff90106 chore: project cleanup and bugfixes 2020-07-12 02:06:11 -05:00
Jordan Knott
e5d5e6da01 arch: move web folder into api & move api to top level 2020-07-04 18:08:37 -05:00