Skip to content

Commit 9ead20a

Browse files
authored
build: Release (#2450)
2 parents 5abcbc9 + c781f61 commit 9ead20a

27 files changed

+1244
-586
lines changed

.github/workflows/ci.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,3 +151,6 @@ jobs:
151151
run: ./scripts/before_script.sh
152152
env:
153153
CI: true
154+
concurrency:
155+
group: ${{ github.workflow }}-${{ github.ref }}
156+
cancel-in-progress: true

README.md

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -329,13 +329,39 @@ If you have classes with a lot of columns and you filter them often with the sam
329329
{
330330
"name": "email",
331331
"filterSortToTop": true
332-
}
332+
}
333333
]
334334
}
335335
}
336336
]
337337
```
338338

339+
### Persistent Filters
340+
341+
The filters you save in the data browser of Parse Dashboard are only available for the current dashboard user in the current browser session. To make filters permanently available for all dashboard users of an app, you can define filters in the `classPreference` setting.
342+
343+
For example:
344+
345+
```json
346+
"apps": [{
347+
"classPreference": {
348+
"_Role": {
349+
"filters": [{
350+
"name": "Filter Name",
351+
"filter": [
352+
{
353+
"field": "objectId",
354+
"constraint": "exists"
355+
}
356+
]
357+
}]
358+
}
359+
}
360+
}]
361+
```
362+
363+
You can conveniently create a filter definition without having to write it by hand by first saving a filter in the data browser, then exporting the filter definition under *App Settings > Export Class Preferences*.
364+
339365
# Running as Express Middleware
340366

341367
Instead of starting Parse Dashboard with the CLI, you can also run it as an [express](https://github.com/expressjs/express) middleware.
@@ -452,8 +478,7 @@ With MFA enabled, a user must provide a one-time password that is typically boun
452478

453479
The user requires an authenticator app to generate the one-time password. These apps are provided by many 3rd parties and mostly for free.
454480

455-
If you create a new user by running `parse-dashboard --createUser`, you will be asked whether you want to enable MFA for the new user. To enable MFA for an existing user,
456-
run `parse-dashboard --createMFA` to generate a `mfa` secret that you then add to the existing user configuration, for example:
481+
If you create a new user by running `parse-dashboard --createUser`, you will be asked whether you want to enable MFA for the new user. To enable MFA for an existing user, run `parse-dashboard --createMFA` to generate a `mfa` secret that you then add to the existing user configuration, for example:
457482

458483
```json
459484
{

changelogs/CHANGELOG_alpha.md

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,107 @@
1+
# [5.2.0-alpha.14](https://github.com/ParsePlatform/parse-dashboard/compare/5.2.0-alpha.13...5.2.0-alpha.14) (2023-06-10)
2+
3+
4+
### Bug Fixes
5+
6+
* Hitting backspace key in data browser crashes dashboard ([#2456](https://github.com/ParsePlatform/parse-dashboard/issues/2456)) ([32aeea2](https://github.com/ParsePlatform/parse-dashboard/commit/32aeea244d81404579f55adf25244c11e3a797d1))
7+
8+
# [5.2.0-alpha.13](https://github.com/ParsePlatform/parse-dashboard/compare/5.2.0-alpha.12...5.2.0-alpha.13) (2023-06-10)
9+
10+
11+
### Features
12+
13+
* Add export of saved data browser filters via `classPreference` settings ([#2455](https://github.com/ParsePlatform/parse-dashboard/issues/2455)) ([f56f946](https://github.com/ParsePlatform/parse-dashboard/commit/f56f946023c628c96030e9d2d66284c53decd33e))
14+
15+
# [5.2.0-alpha.12](https://github.com/ParsePlatform/parse-dashboard/compare/5.2.0-alpha.11...5.2.0-alpha.12) (2023-06-09)
16+
17+
18+
### Features
19+
20+
* Add filter views to save frequently used filters in data browser ([#2404](https://github.com/ParsePlatform/parse-dashboard/issues/2404)) ([a9ec3a9](https://github.com/ParsePlatform/parse-dashboard/commit/a9ec3a915ff354304f382c17e8d5311b2c96d7ff))
21+
22+
# [5.2.0-alpha.11](https://github.com/ParsePlatform/parse-dashboard/compare/5.2.0-alpha.10...5.2.0-alpha.11) (2023-06-08)
23+
24+
25+
### Bug Fixes
26+
27+
* Scroll position is preserved when re-opening the same class in data browser via navigation bar ([#2445](https://github.com/ParsePlatform/parse-dashboard/issues/2445)) ([667675c](https://github.com/ParsePlatform/parse-dashboard/commit/667675c031b0483be210a88da3b159f5f815d6fb))
28+
29+
# [5.2.0-alpha.10](https://github.com/ParsePlatform/parse-dashboard/compare/5.2.0-alpha.9...5.2.0-alpha.10) (2023-06-01)
30+
31+
32+
### Bug Fixes
33+
34+
* Option missing for Parse Config parameter to require master key ([#2440](https://github.com/ParsePlatform/parse-dashboard/issues/2440)) ([6623369](https://github.com/ParsePlatform/parse-dashboard/commit/66233698b333422f306dc7024949aef2ea028f34))
35+
36+
# [5.2.0-alpha.9](https://github.com/ParsePlatform/parse-dashboard/compare/5.2.0-alpha.8...5.2.0-alpha.9) (2023-05-27)
37+
38+
39+
### Bug Fixes
40+
41+
* Dashboard crashes when adding a row with modal in a class that contains a pointer to another class that contains an array of pointers ([#2416](https://github.com/ParsePlatform/parse-dashboard/issues/2416)) ([286269f](https://github.com/ParsePlatform/parse-dashboard/commit/286269f3e2c4e1c83b14003ce72caaf1f39b16c1))
42+
43+
# [5.2.0-alpha.8](https://github.com/ParsePlatform/parse-dashboard/compare/5.2.0-alpha.7...5.2.0-alpha.8) (2023-05-27)
44+
45+
46+
### Bug Fixes
47+
48+
* Cannot navigate to nested relation field in data browser ([#2420](https://github.com/ParsePlatform/parse-dashboard/issues/2420)) ([e7ace9e](https://github.com/ParsePlatform/parse-dashboard/commit/e7ace9efa068b92c5cf0e5ccdad169ac7d71e81a))
49+
50+
# [5.2.0-alpha.7](https://github.com/ParsePlatform/parse-dashboard/compare/5.2.0-alpha.6...5.2.0-alpha.7) (2023-05-27)
51+
52+
53+
### Bug Fixes
54+
55+
* File uploading status not updating in data browser ([#2422](https://github.com/ParsePlatform/parse-dashboard/issues/2422)) ([e761f97](https://github.com/ParsePlatform/parse-dashboard/commit/e761f9715a8366466c6620994ce698adbbfc48cd))
56+
57+
# [5.2.0-alpha.6](https://github.com/ParsePlatform/parse-dashboard/compare/5.2.0-alpha.5...5.2.0-alpha.6) (2023-05-27)
58+
59+
60+
### Bug Fixes
61+
62+
* Text input cursor jumps to first position when writing long text ([#2413](https://github.com/ParsePlatform/parse-dashboard/issues/2413)) ([422ffb2](https://github.com/ParsePlatform/parse-dashboard/commit/422ffb2897bb2664eb47b5aaad5094a8b39431bf))
63+
64+
# [5.2.0-alpha.5](https://github.com/ParsePlatform/parse-dashboard/compare/5.2.0-alpha.4...5.2.0-alpha.5) (2023-05-27)
65+
66+
67+
### Bug Fixes
68+
69+
* Back button in data browser disappears after page refresh ([#2421](https://github.com/ParsePlatform/parse-dashboard/issues/2421)) ([6c5f19f](https://github.com/ParsePlatform/parse-dashboard/commit/6c5f19f6ed2cda1f1f0dc59bdaed3ae49f264380))
70+
71+
# [5.2.0-alpha.4](https://github.com/ParsePlatform/parse-dashboard/compare/5.2.0-alpha.3...5.2.0-alpha.4) (2023-05-27)
72+
73+
74+
### Bug Fixes
75+
76+
* Incorrect date picker position in data browser filter dialog ([#2425](https://github.com/ParsePlatform/parse-dashboard/issues/2425)) ([b96b48f](https://github.com/ParsePlatform/parse-dashboard/commit/b96b48fdd5ce452783e0887c36231971a1822173))
77+
78+
# [5.2.0-alpha.3](https://github.com/ParsePlatform/parse-dashboard/compare/5.2.0-alpha.2...5.2.0-alpha.3) (2023-05-27)
79+
80+
81+
### Bug Fixes
82+
83+
* Empty table in data browser when navigating back using the "back” button ([#2423](https://github.com/ParsePlatform/parse-dashboard/issues/2423)) ([6f3dab6](https://github.com/ParsePlatform/parse-dashboard/commit/6f3dab60c257c76345235acfd3e43aafadeb84c8))
84+
85+
# [5.2.0-alpha.2](https://github.com/ParsePlatform/parse-dashboard/compare/5.2.0-alpha.1...5.2.0-alpha.2) (2023-05-27)
86+
87+
88+
### Features
89+
90+
* Add links to users and roles in ACL dialog and handle invalid entries ([#2436](https://github.com/ParsePlatform/parse-dashboard/issues/2436)) ([a20cb8e](https://github.com/ParsePlatform/parse-dashboard/commit/a20cb8e534d3fecd8d337463864b15048772a9a5))
91+
92+
# [5.2.0-alpha.1](https://github.com/ParsePlatform/parse-dashboard/compare/5.1.0...5.2.0-alpha.1) (2023-05-21)
93+
94+
95+
### Bug Fixes
96+
97+
* Uncaught error when editing Number field in Edit Row dialog ([#2401](https://github.com/ParsePlatform/parse-dashboard/issues/2401)) ([26bd6fa](https://github.com/ParsePlatform/parse-dashboard/commit/26bd6fa39be1076621856a9c86dcd1307f8f7fdd))
98+
99+
### Features
100+
101+
* Add visual configurator for Parse Dashboard settings ([#2406](https://github.com/ParsePlatform/parse-dashboard/issues/2406)) ([228d839](https://github.com/ParsePlatform/parse-dashboard/commit/228d83903fd8698da7b96a5b74699f3ff2d5dad4))
102+
* Data types and pointer classes are sorted alphabetically in dialog to add new column ([#2400](https://github.com/ParsePlatform/parse-dashboard/issues/2400)) ([d9d285b](https://github.com/ParsePlatform/parse-dashboard/commit/d9d285b7f90434d3bb138c2c765272498e3f09c3))
103+
* Sort Cloud Code Jobs alphabetically ([#2402](https://github.com/ParsePlatform/parse-dashboard/issues/2402)) ([77fc372](https://github.com/ParsePlatform/parse-dashboard/commit/77fc372bedb9fb4eca728c1bc076e823c5bc3a2c))
104+
1105
# [5.1.0-alpha.13](https://github.com/ParsePlatform/parse-dashboard/compare/5.1.0-alpha.12...5.1.0-alpha.13) (2023-03-07)
2106

3107

package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "parse-dashboard",
3-
"version": "5.2.0-beta.1",
3+
"version": "5.2.0-alpha.14",
44
"repository": {
55
"type": "git",
66
"url": "https://github.com/ParsePlatform/parse-dashboard"

src/components/ACLEditor/ACLEditor.react.js

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,10 @@ import Parse from 'parse';
99
import PermissionsDialog from 'components/PermissionsDialog/PermissionsDialog.react';
1010
import React from 'react';
1111

12-
function validateEntry(text) {
12+
function validateEntry(text, returnInvalid = true) {
1313

14+
let type = 'unknown';
15+
let entry = text;
1416
let userQuery;
1517
let roleQuery;
1618

@@ -19,22 +21,26 @@ function validateEntry(text) {
1921
}
2022

2123
if (text.startsWith('user:')) {
24+
type = 'user';
2225
// no need to query roles
2326
roleQuery = {
2427
find: () => Promise.resolve([])
2528
};
2629

2730
let user = text.substring(5);
31+
entry = user;
2832
userQuery = new Parse.Query.or(
2933
new Parse.Query(Parse.User).equalTo('username', user),
3034
new Parse.Query(Parse.User).equalTo('objectId', user)
3135
);
3236
} else if (text.startsWith('role:')) {
37+
type = 'role';
3338
// no need to query users
3439
userQuery = {
3540
find: () => Promise.resolve([])
3641
};
3742
let role = text.substring(5);
43+
entry = role;
3844
roleQuery = new Parse.Query.or(
3945
new Parse.Query(Parse.Role).equalTo('name', role),
4046
new Parse.Query(Parse.Role).equalTo('objectId', role)
@@ -61,6 +67,9 @@ function validateEntry(text) {
6167
} else if (role.length > 0) {
6268
return { entry: role[0], type: 'role' };
6369
} else {
70+
if(returnInvalid) {
71+
return Promise.resolve({entry, type})
72+
}
6473
return Promise.reject();
6574
}
6675
});

src/components/Autocomplete/Autocomplete.react.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ export default class Autocomplete extends Component {
235235
// Tab
236236
// do not type it
237237
e.preventDefault();
238-
238+
239239
e.stopPropagation();
240240
// move focus to input
241241
this.inputRef.current.focus();
@@ -318,7 +318,7 @@ export default class Autocomplete extends Component {
318318
onClick={onClick}
319319
/>
320320
);
321-
}
321+
}
322322

323323
return (
324324
<React.Fragment>
@@ -372,5 +372,5 @@ Autocomplete.propTypes = {
372372
),
373373
error: PropTypes.string.describe(
374374
'Error to be rendered in place of label if defined'
375-
)
376-
}
375+
)
376+
}

src/components/BrowserCell/BrowserCell.react.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ export default class BrowserCell extends Component {
9292
this.copyableValue = this.props.value.id;
9393
}
9494
else if (this.props.type === 'Array') {
95-
if ( this.props.value[0] && typeof this.props.value[0] === 'object' && this.props.value[0].__type === 'Pointer' ) {
95+
if ( this.props.value[0] && typeof this.props.value[0] === 'object' && this.props.value[0].__type === 'Pointer' && typeof this.props.onPointerClick === 'function' ) {
9696
const array = [];
9797
this.props.value.map( (v, i) => {
9898
if ( typeof v !== 'object' || v.__type !== 'Pointer' ) {
@@ -177,6 +177,9 @@ export default class BrowserCell extends Component {
177177
componentDidUpdate(prevProps) {
178178
if ( this.props.value !== prevProps.value ) {
179179
this.renderCellContent();
180+
this.props.value?._previousSave
181+
?.then(() => this.renderCellContent())
182+
?.catch(err => console.log(err))
180183
}
181184
if (this.props.current) {
182185
const node = this.cellRef.current;

0 commit comments

Comments
 (0)