Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Server side filtering and pagination #17

Open
wants to merge 61 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 6 commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
2fd916b
Server side filtering and pagination
yuenler Oct 30, 2024
569bcf2
Rebuilt
gabeabrams Oct 31, 2024
55ab903
Fix bugs to make filtering actually work
yuenler Oct 31, 2024
3e2be78
More log indexes (#18)
gabeabrams Nov 1, 2024
9172f0c
filter state types
yuenler Nov 10, 2024
4c94077
Use Number.parseInt for courseId parsing in advanced filter
yuenler Nov 10, 2024
a4fa0f2
copy-server-types
yuenler Nov 10, 2024
167f9ee
Prompt (#14)
yuenler Nov 12, 2024
121830d
Rebuilt
gabeabrams Nov 12, 2024
858131d
Minor formatting, type location updates
gabeabrams Nov 12, 2024
077057b
Bumped version
gabeabrams Nov 12, 2024
460e8ea
Add support for complex formatting in CheckboxButton text (#19)
yuenler Nov 19, 2024
ea25749
Build
gabeabrams Nov 20, 2024
8698602
3.9.7
gabeabrams Nov 20, 2024
d251511
resetting don't need to click filter
yuenler Nov 20, 2024
5ba771a
Version bump, build
gabeabrams Nov 20, 2024
c978900
Tooltip now white text
gabeabrams Dec 3, 2024
fb4b7bf
Fixed simple date chooser for December
gabeabrams Dec 3, 2024
57e6a41
radio button complex formatting (#20)
yuenler Jan 6, 2025
74645bf
3.9.10
gabeabrams Jan 6, 2025
7e259d7
Rebuilt
gabeabrams Jan 6, 2025
ceb46b3
Fixed user/course info writing for log data
gabeabrams Jan 7, 2025
629131d
3.10.0
gabeabrams Jan 7, 2025
8448b9e
Radio button layout fixes
gabeabrams Jan 8, 2025
654a48f
3.10.1
gabeabrams Jan 8, 2025
3435966
Better spacing
gabeabrams Jan 8, 2025
086f33d
3.10.2
gabeabrams Jan 8, 2025
8cf6ebe
tab size 2 (#23)
yuenler Jan 8, 2025
229f6e6
3.10.3
gabeabrams Jan 8, 2025
51fde7c
Rebuilt
gabeabrams Jan 8, 2025
294c5aa
No server app support
gabeabrams Jan 13, 2025
bee2da0
3.11.0
gabeabrams Jan 13, 2025
694b8ab
tooltip text color fix (#24)
yuenler Jan 16, 2025
c44f6bd
Rebuilt
gabeabrams Jan 16, 2025
be49c7e
track total number of pages, include parameters in fetchLogs
yuenler Jan 30, 2025
da5464e
conditionally dispatch numPages update in LogReviewer
yuenler Jan 30, 2025
e376b57
Rebuild
gabeabrams Feb 3, 2025
8be3ef3
New version
gabeabrams Feb 3, 2025
ecd4c89
manage loading state and page number updates more effectively
yuenler Feb 3, 2025
a127381
updated version
gabeabrams Feb 4, 2025
01dfab9
use constant for log review page size
yuenler Feb 4, 2025
ac8035c
Merge branch 'f/log-reviewer-server-side-filter' of https://github.co…
yuenler Feb 4, 2025
60893f1
Server side filtering and pagination
yuenler Oct 30, 2024
eec2208
Rebuilt
gabeabrams Oct 31, 2024
feb1be4
Fix bugs to make filtering actually work
yuenler Oct 31, 2024
cf1ceae
filter state types
yuenler Nov 10, 2024
72e577c
Use Number.parseInt for courseId parsing in advanced filter
yuenler Nov 10, 2024
35881eb
copy-server-types
yuenler Nov 10, 2024
13d41cb
Minor formatting, type location updates
gabeabrams Nov 12, 2024
98e739e
Bumped version
gabeabrams Nov 12, 2024
b70b4a1
resetting don't need to click filter
yuenler Nov 20, 2024
7182aaa
Version bump, build
gabeabrams Nov 20, 2024
42d924a
track total number of pages, include parameters in fetchLogs
yuenler Jan 30, 2025
c8023a8
conditionally dispatch numPages update in LogReviewer
yuenler Jan 30, 2025
710a652
Rebuild
gabeabrams Feb 3, 2025
f82729f
New version
gabeabrams Feb 3, 2025
0145416
manage loading state and page number updates more effectively
yuenler Feb 3, 2025
90dcfb1
use constant for log review page size
yuenler Feb 4, 2025
92b525e
updated version
gabeabrams Feb 4, 2025
6fd2fbf
Merge branch 'f/log-reviewer-server-side-filter' of https://github.co…
yuenler Feb 4, 2025
99b96f7
Add constant for log review page size
yuenler Feb 4, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,370 changes: 602 additions & 768 deletions dist/cjs/index.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/cjs/index.js.map

Large diffs are not rendered by default.

1,372 changes: 603 additions & 769 deletions dist/esm/index.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/esm/index.js.map

Large diffs are not rendered by default.

5 changes: 3 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
{
"name": "dce-reactkit",
"version": "3.9.4-beta-logreviewer.1",
"version": "3.9.4-beta-logreviewer.2",
"description": "Shared components for Harvard DCE apps",
"main": "dist/cjs/index.js",
"module": "dist/esm/index.js",
"types": "dist/index.d.ts",
"scripts": {
"build": "rm -rf dist && rollup -c",
"test": "jest --runInBand"
"test": "jest --runInBand",
"copy-server-types": "rm -rf ./src/client/types/from-server; cp -r ./src/server/types ./src/client/types/from-server"
},
"jest": {
"preset": "ts-jest",
Expand Down
21 changes: 21 additions & 0 deletions src/client/types/from-server/ActionErrorFilterState.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import LogType from '../../types/LogType';

// Action filter state (only relevant for action logs)
type ActionErrorFilterState = {
// Required type of log
type: LogType | undefined, // If undefined, no filter applied
// Query for error message (only relevant if type is error)
errorMessage: string, // If empty, no filter applied
// Query for error code (only relevant if type is error)
errorCode: string, // If empty, no filter applied
// Action targets to include (only relevant if type is action)
target: {
[k: string]: boolean
},
// Action types to include (only relevant if type is action)
action: {
[k: string]: boolean
},
};

export default ActionErrorFilterState;
33 changes: 33 additions & 0 deletions src/client/types/from-server/AdvancedFilterState.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
import LogSource from '../../types/LogSource';

// Advanced filter state
type AdvancedFilterState = {
// Query for user first name (case insensitive)
userFirstName: string, // If empty, no filter applied
// Query for user last name (case insensitive)
userLastName: string, // If empty, no filter applied
// Query for user email (case insensitive)
userEmail: string, // If empty, no filter applied
// Match for userId (numerical)
userId: string, // If empty, no filter applied
// If true, include students
includeLearners: boolean,
// If true, include ttms
includeTTMs: boolean,
// If true, include admins
includeAdmins: boolean,
// Match for courseId (numerical)
courseId: string, // If empty, no filter applied
// Query for course name (case insensitive)
courseName: string, // If empty, no filter applied
// Required isMobile value
isMobile: (true | false | undefined), // If undefined, no filter applied
// Required log source value
source: LogSource | undefined, // If undefined, no filter applied
// Query for route path (only relevant if source is server)
routePath: string, // If empty, no filter applied
// Query for route template (only relevant if source is server)
routeTemplate: string, // If empty, no filter applied
};

export default AdvancedFilterState;
13 changes: 13 additions & 0 deletions src/client/types/from-server/ContextFilterState.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// Context filter state
type ContextFilterState = {
[k: string]: (
// No subcontexts
| boolean // True if selected
// Includes subcontexts
| {
[k: string]: boolean // True if selected
}
)
};

export default ContextFilterState;
23 changes: 23 additions & 0 deletions src/client/types/from-server/DateFilterState.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
// Date filter state
type DateFilterState = {
// Current start date
startDate: {
// Full year
year: number,
// 1-indexed month
month: number,
// 1-indexed day
day: number,
},
// Current end date
endDate: {
// Full year
year: number,
// 1-indexed month
month: number,
// 1-indexed day
day: number,
},
};

export default DateFilterState;
6 changes: 6 additions & 0 deletions src/client/types/from-server/TagFilterState.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
// Tag filter state
type TagFilterState = {
[k: string]: boolean // tag => true if in the list of tags to show
};

export default TagFilterState;
Loading