@plone/volto 17.0.0-alpha.24 → 17.0.0-alpha.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.yarn/install-state.gz +0 -0
- package/CHANGELOG.md +92 -4
- package/CONTRIBUTING.md +5 -1
- package/README.md +9 -7
- package/cypress/support/commands.js +12 -9
- package/cypress.config.js +1 -0
- package/locales/ca/LC_MESSAGES/volto.po +41 -15
- package/locales/ca.json +1 -1
- package/locales/de/LC_MESSAGES/volto.po +41 -15
- package/locales/de.json +1 -1
- package/locales/en/LC_MESSAGES/volto.po +40 -14
- package/locales/en.json +1 -1
- package/locales/es/LC_MESSAGES/volto.po +69 -43
- package/locales/es.json +1 -1
- package/locales/eu/LC_MESSAGES/volto.po +40 -14
- package/locales/eu.json +1 -1
- package/locales/fi/LC_MESSAGES/volto.po +40 -14
- package/locales/fi.json +1 -1
- package/locales/fr/LC_MESSAGES/volto.po +41 -15
- package/locales/fr.json +1 -1
- package/locales/it/LC_MESSAGES/volto.po +40 -14
- package/locales/it.json +1 -1
- package/locales/ja/LC_MESSAGES/volto.po +40 -14
- package/locales/ja.json +1 -1
- package/locales/nl/LC_MESSAGES/volto.po +41 -15
- package/locales/nl.json +1 -1
- package/locales/pt/LC_MESSAGES/volto.po +41 -15
- package/locales/pt.json +1 -1
- package/locales/pt_BR/LC_MESSAGES/volto.po +40 -14
- package/locales/pt_BR.json +1 -1
- package/locales/ro/LC_MESSAGES/volto.po +41 -15
- package/locales/ro.json +1 -1
- package/locales/volto.pot +41 -15
- package/locales/zh_CN/LC_MESSAGES/volto.po +41 -15
- package/locales/zh_CN.json +1 -1
- package/package.json +4 -4
- package/packages/volto-slate/build/messages/src/blocks/Table/TableBlockEdit.json +90 -0
- package/packages/volto-slate/build/messages/src/blocks/Text/DefaultTextBlockEditor.json +6 -0
- package/packages/volto-slate/build/messages/src/blocks/Text/DetachedTextBlockEditor.json +6 -0
- package/packages/volto-slate/build/messages/src/blocks/Text/SlashMenu.json +6 -0
- package/packages/volto-slate/build/messages/src/editor/plugins/AdvancedLink/index.json +10 -0
- package/packages/volto-slate/build/messages/src/editor/plugins/Link/index.json +10 -0
- package/packages/volto-slate/build/messages/src/editor/plugins/Table/index.json +30 -0
- package/packages/volto-slate/build/messages/src/elementEditor/messages.json +10 -0
- package/packages/volto-slate/build/messages/src/widgets/HtmlSlateWidget.json +6 -0
- package/packages/volto-slate/build/messages/src/widgets/RichTextWidgetView.json +6 -0
- package/packages/volto-slate/package.json +1 -1
- package/packages/volto-slate/src/editor/render.jsx +2 -3
- package/src/actions/index.js +4 -0
- package/src/actions/navroot/navroot.js +16 -0
- package/src/actions/navroot/navroot.test.js +15 -0
- package/src/actions/relations/relations.js +17 -0
- package/src/actions/site/site.js +16 -0
- package/src/actions/site/site.test.js +15 -0
- package/src/actions/userSession/userSession.js +17 -1
- package/src/components/manage/Blocks/Block/Settings.jsx +2 -0
- package/src/components/manage/Blocks/Block/Settings.test.jsx +90 -0
- package/src/components/manage/Blocks/Image/schema.js +5 -1
- package/src/components/manage/Blocks/Listing/withQuerystringResults.jsx +18 -11
- package/src/components/manage/Blocks/Search/hocs/withSearch.jsx +42 -25
- package/src/components/manage/Blocks/ToC/View.jsx +75 -13
- package/src/components/manage/Blocks/ToC/variations/DefaultTocRenderer.jsx +4 -13
- package/src/components/manage/Blocks/ToC/variations/DefaultTocRenderer.test.jsx +44 -0
- package/src/components/manage/Contents/Contents.jsx +27 -0
- package/src/components/manage/Controlpanels/Groups/GroupsControlpanel.jsx +65 -38
- package/src/components/manage/Controlpanels/Relations/BrokenRelations.jsx +11 -9
- package/src/components/manage/Controlpanels/Relations/Relations.jsx +3 -3
- package/src/components/manage/Controlpanels/Relations/RelationsListing.jsx +8 -7
- package/src/components/manage/Controlpanels/Relations/RelationsMatrix.jsx +15 -9
- package/src/components/manage/Controlpanels/Rules/AddRule.jsx +1 -1
- package/src/components/manage/Controlpanels/Rules/EditRule.jsx +1 -1
- package/src/components/manage/Controlpanels/Users/RenderUsers.jsx +95 -5
- package/src/components/manage/Controlpanels/Users/UsersControlpanel.jsx +127 -99
- package/src/components/manage/Diff/DiffField.jsx +25 -1
- package/src/components/manage/Form/BlockDataForm.jsx +3 -2
- package/src/components/manage/Form/BlockDataForm.test.jsx +34 -2
- package/src/components/manage/LinksToItem/LinksToItem.jsx +1 -1
- package/src/components/manage/LinksToItem/LinksToItem.test.jsx +5 -2
- package/src/components/manage/Messages/Messages.jsx +32 -99
- package/src/components/manage/Messages/Messages.test.jsx +0 -1
- package/src/components/manage/Sharing/Sharing.jsx +50 -21
- package/src/components/manage/UniversalLink/UniversalLink.jsx +4 -6
- package/src/components/manage/Widgets/ArrayWidget.jsx +3 -1
- package/src/components/manage/Widgets/ArrayWidget.test.jsx +45 -1
- package/src/components/manage/Widgets/FormFieldWrapper.jsx +1 -1
- package/src/components/manage/Widgets/RegistryImageWidget.jsx +210 -0
- package/src/components/manage/Widgets/RegistryImageWidget.test.jsx +91 -0
- package/src/components/manage/Widgets/SelectWidget.jsx +15 -1
- package/src/components/manage/Widgets/SelectWidget.test.jsx +45 -1
- package/src/components/theme/Comments/Comment.stories.jsx +84 -0
- package/src/components/theme/Comments/Comments.jsx +273 -378
- package/src/components/theme/ContentMetadataTags/ContentMetadataTags.jsx +37 -3
- package/src/components/theme/Login/Login.jsx +159 -241
- package/src/components/theme/Logo/Logo.Multilingual.test.jsx +131 -1
- package/src/components/theme/Logo/Logo.jsx +35 -29
- package/src/components/theme/Logo/Logo.test.jsx +135 -1
- package/src/components/theme/Logout/Logout.jsx +36 -83
- package/src/components/theme/Navigation/Navigation.jsx +86 -171
- package/src/components/theme/Search/SearchTags.jsx +30 -60
- package/src/components/theme/SearchWidget/SearchWidget.jsx +15 -3
- package/src/components/theme/SearchWidget/SearchWidget.test.jsx +8 -0
- package/src/components/theme/Sitemap/Sitemap.jsx +24 -13
- package/src/components/theme/Sitemap/Sitemap.test.jsx +23 -2
- package/src/components/theme/View/View.jsx +2 -0
- package/src/config/ControlPanels.js +0 -1
- package/src/config/Widgets.jsx +2 -0
- package/src/config/index.js +15 -3
- package/src/constants/ActionTypes.js +4 -0
- package/src/express-middleware/images.js +1 -0
- package/src/helpers/MessageLabels/MessageLabels.js +26 -4
- package/src/helpers/Site/index.js +21 -0
- package/src/helpers/index.js +1 -0
- package/src/reducers/index.js +4 -0
- package/src/reducers/navroot/navroot.js +79 -0
- package/src/reducers/navroot/navroot.test.js +110 -0
- package/src/reducers/relations/relations.js +74 -46
- package/src/reducers/site/site.js +51 -0
- package/src/reducers/site/site.test.js +67 -0
- package/src/reducers/userSession/userSession.js +15 -1
- package/src/server.jsx +9 -0
- package/test-setup-config.js +1 -0
- package/theme/themes/pastanaga/collections/form.overrides +46 -0
- package/theme/themes/pastanaga/elements/input.overrides +10 -0
- package/theme/themes/pastanaga/elements/label.overrides +10 -0
- package/theme/themes/pastanaga/extras/login.less +3 -0
- package/webpack-plugins/webpack-less-plugin.js +19 -0
- package/.gitignore~ +0 -71
- package/news/4547.breaking~ +0 -1
- package/package.json~ +0 -444
- package/src/config/index.js~ +0 -223
|
@@ -7,23 +7,29 @@ import {
|
|
|
7
7
|
CREATE_RELATIONS,
|
|
8
8
|
DELETE_RELATIONS,
|
|
9
9
|
LIST_RELATIONS,
|
|
10
|
+
STATS_RELATIONS,
|
|
10
11
|
REBUILD_RELATIONS,
|
|
11
12
|
} from '@plone/volto/constants/ActionTypes';
|
|
12
13
|
|
|
13
14
|
const initialState = {
|
|
14
|
-
relations:
|
|
15
|
-
stats: null,
|
|
16
|
-
create: {
|
|
15
|
+
relations: {
|
|
17
16
|
error: null,
|
|
18
17
|
loaded: false,
|
|
19
18
|
loading: false,
|
|
19
|
+
data: null,
|
|
20
20
|
},
|
|
21
|
-
|
|
21
|
+
stats: {
|
|
22
|
+
error: null,
|
|
23
|
+
loaded: false,
|
|
24
|
+
loading: false,
|
|
25
|
+
data: null,
|
|
26
|
+
},
|
|
27
|
+
create: {
|
|
22
28
|
error: null,
|
|
23
29
|
loaded: false,
|
|
24
30
|
loading: false,
|
|
25
31
|
},
|
|
26
|
-
|
|
32
|
+
delete: {
|
|
27
33
|
error: null,
|
|
28
34
|
loaded: false,
|
|
29
35
|
loading: false,
|
|
@@ -55,17 +61,6 @@ function getRequestKey(actionType) {
|
|
|
55
61
|
*/
|
|
56
62
|
export default function relations(state = initialState, action = {}) {
|
|
57
63
|
switch (action.type) {
|
|
58
|
-
case `${CREATE_RELATIONS}_PENDING`:
|
|
59
|
-
case `${DELETE_RELATIONS}_PENDING`:
|
|
60
|
-
case `${REBUILD_RELATIONS}_PENDING`:
|
|
61
|
-
return {
|
|
62
|
-
...state,
|
|
63
|
-
[getRequestKey(action.type)]: {
|
|
64
|
-
loading: true,
|
|
65
|
-
loaded: false,
|
|
66
|
-
error: null,
|
|
67
|
-
},
|
|
68
|
-
};
|
|
69
64
|
case `${LIST_RELATIONS}_PENDING`:
|
|
70
65
|
return action.subrequest
|
|
71
66
|
? {
|
|
@@ -73,10 +68,7 @@ export default function relations(state = initialState, action = {}) {
|
|
|
73
68
|
subrequests: {
|
|
74
69
|
...state.subrequests,
|
|
75
70
|
[action.subrequest]: {
|
|
76
|
-
|
|
77
|
-
relations: null,
|
|
78
|
-
stats: null,
|
|
79
|
-
}),
|
|
71
|
+
data: null,
|
|
80
72
|
loaded: false,
|
|
81
73
|
loading: true,
|
|
82
74
|
error: null,
|
|
@@ -85,7 +77,8 @@ export default function relations(state = initialState, action = {}) {
|
|
|
85
77
|
}
|
|
86
78
|
: {
|
|
87
79
|
...state,
|
|
88
|
-
|
|
80
|
+
relations: {
|
|
81
|
+
data: null,
|
|
89
82
|
loading: true,
|
|
90
83
|
loaded: false,
|
|
91
84
|
error: null,
|
|
@@ -98,39 +91,22 @@ export default function relations(state = initialState, action = {}) {
|
|
|
98
91
|
subrequests: {
|
|
99
92
|
...state.subrequests,
|
|
100
93
|
[action.subrequest]: {
|
|
94
|
+
data: action.result.relations,
|
|
101
95
|
loading: false,
|
|
102
96
|
loaded: true,
|
|
103
97
|
error: null,
|
|
104
|
-
relations: action.result.relations
|
|
105
|
-
? action.result.relations
|
|
106
|
-
: [],
|
|
107
|
-
stats: null,
|
|
108
98
|
},
|
|
109
99
|
},
|
|
110
100
|
}
|
|
111
101
|
: {
|
|
112
102
|
...state,
|
|
113
|
-
relations:
|
|
114
|
-
|
|
115
|
-
: state.relations,
|
|
116
|
-
stats: action.result.stats ? action.result : state.stats,
|
|
117
|
-
[getRequestKey(action.type)]: {
|
|
103
|
+
relations: {
|
|
104
|
+
data: action.result.relations,
|
|
118
105
|
loading: false,
|
|
119
106
|
loaded: true,
|
|
120
107
|
error: null,
|
|
121
108
|
},
|
|
122
109
|
};
|
|
123
|
-
case `${CREATE_RELATIONS}_SUCCESS`:
|
|
124
|
-
case `${DELETE_RELATIONS}_SUCCESS`:
|
|
125
|
-
case `${REBUILD_RELATIONS}_SUCCESS`:
|
|
126
|
-
return {
|
|
127
|
-
...state,
|
|
128
|
-
[getRequestKey(action.type)]: {
|
|
129
|
-
loading: false,
|
|
130
|
-
loaded: true,
|
|
131
|
-
error: null,
|
|
132
|
-
},
|
|
133
|
-
};
|
|
134
110
|
case `${LIST_RELATIONS}_FAIL`:
|
|
135
111
|
return action.subrequest
|
|
136
112
|
? {
|
|
@@ -138,8 +114,7 @@ export default function relations(state = initialState, action = {}) {
|
|
|
138
114
|
subrequests: {
|
|
139
115
|
...state.subrequests,
|
|
140
116
|
[action.subrequest]: {
|
|
141
|
-
|
|
142
|
-
stats: null,
|
|
117
|
+
data: null,
|
|
143
118
|
loading: false,
|
|
144
119
|
loaded: false,
|
|
145
120
|
error: action.error,
|
|
@@ -148,14 +123,67 @@ export default function relations(state = initialState, action = {}) {
|
|
|
148
123
|
}
|
|
149
124
|
: {
|
|
150
125
|
...state,
|
|
151
|
-
relations:
|
|
152
|
-
|
|
153
|
-
[getRequestKey(action.type)]: {
|
|
126
|
+
relations: {
|
|
127
|
+
data: null,
|
|
154
128
|
loading: false,
|
|
155
129
|
loaded: false,
|
|
156
130
|
error: action.error,
|
|
157
131
|
},
|
|
158
132
|
};
|
|
133
|
+
|
|
134
|
+
case `${STATS_RELATIONS}_PENDING`:
|
|
135
|
+
return {
|
|
136
|
+
...state,
|
|
137
|
+
[getRequestKey(action.type)]: {
|
|
138
|
+
loading: true,
|
|
139
|
+
loaded: false,
|
|
140
|
+
error: null,
|
|
141
|
+
data: null,
|
|
142
|
+
},
|
|
143
|
+
};
|
|
144
|
+
case `${STATS_RELATIONS}_SUCCESS`:
|
|
145
|
+
return {
|
|
146
|
+
...state,
|
|
147
|
+
[getRequestKey(action.type)]: {
|
|
148
|
+
loading: false,
|
|
149
|
+
loaded: true,
|
|
150
|
+
error: null,
|
|
151
|
+
data: action.result,
|
|
152
|
+
},
|
|
153
|
+
};
|
|
154
|
+
case `${STATS_RELATIONS}_FAIL`:
|
|
155
|
+
return {
|
|
156
|
+
...state,
|
|
157
|
+
[getRequestKey(action.type)]: {
|
|
158
|
+
loading: false,
|
|
159
|
+
loaded: false,
|
|
160
|
+
error: action.error,
|
|
161
|
+
data: null,
|
|
162
|
+
},
|
|
163
|
+
};
|
|
164
|
+
|
|
165
|
+
case `${CREATE_RELATIONS}_PENDING`:
|
|
166
|
+
case `${DELETE_RELATIONS}_PENDING`:
|
|
167
|
+
case `${REBUILD_RELATIONS}_PENDING`:
|
|
168
|
+
return {
|
|
169
|
+
...state,
|
|
170
|
+
[getRequestKey(action.type)]: {
|
|
171
|
+
loading: true,
|
|
172
|
+
loaded: false,
|
|
173
|
+
error: null,
|
|
174
|
+
},
|
|
175
|
+
};
|
|
176
|
+
case `${CREATE_RELATIONS}_SUCCESS`:
|
|
177
|
+
case `${DELETE_RELATIONS}_SUCCESS`:
|
|
178
|
+
case `${REBUILD_RELATIONS}_SUCCESS`:
|
|
179
|
+
return {
|
|
180
|
+
...state,
|
|
181
|
+
[getRequestKey(action.type)]: {
|
|
182
|
+
loading: false,
|
|
183
|
+
loaded: true,
|
|
184
|
+
error: null,
|
|
185
|
+
},
|
|
186
|
+
};
|
|
159
187
|
case `${CREATE_RELATIONS}_FAIL`:
|
|
160
188
|
case `${DELETE_RELATIONS}_FAIL`:
|
|
161
189
|
case `${REBUILD_RELATIONS}_FAIL`:
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Site reducer.
|
|
3
|
+
* @module reducers/site/site
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { GET_SITE } from '@plone/volto/constants/ActionTypes';
|
|
7
|
+
|
|
8
|
+
const initialState = {
|
|
9
|
+
error: null,
|
|
10
|
+
loaded: false,
|
|
11
|
+
loading: false,
|
|
12
|
+
data: {},
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Site reducer.
|
|
17
|
+
* @function site
|
|
18
|
+
* @param {Object} state Current state.
|
|
19
|
+
* @param {Object} action Action to be handled.
|
|
20
|
+
* @returns {Object} New state.
|
|
21
|
+
*/
|
|
22
|
+
export default function site(state = initialState, action = {}) {
|
|
23
|
+
switch (action.type) {
|
|
24
|
+
case `${GET_SITE}_PENDING`:
|
|
25
|
+
return {
|
|
26
|
+
...state,
|
|
27
|
+
error: null,
|
|
28
|
+
loaded: false,
|
|
29
|
+
loading: true,
|
|
30
|
+
data: {},
|
|
31
|
+
};
|
|
32
|
+
case `${GET_SITE}_SUCCESS`:
|
|
33
|
+
return {
|
|
34
|
+
...state,
|
|
35
|
+
error: null,
|
|
36
|
+
loaded: true,
|
|
37
|
+
loading: false,
|
|
38
|
+
data: action.result,
|
|
39
|
+
};
|
|
40
|
+
case `${GET_SITE}_FAIL`:
|
|
41
|
+
return {
|
|
42
|
+
...state,
|
|
43
|
+
error: action.result,
|
|
44
|
+
loaded: false,
|
|
45
|
+
loading: false,
|
|
46
|
+
data: {},
|
|
47
|
+
};
|
|
48
|
+
default:
|
|
49
|
+
return state;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { GET_SITE } from '@plone/volto/constants/ActionTypes';
|
|
2
|
+
import config from '@plone/volto/registry';
|
|
3
|
+
import site from './site';
|
|
4
|
+
|
|
5
|
+
const { settings } = config;
|
|
6
|
+
|
|
7
|
+
describe('Site reducer', () => {
|
|
8
|
+
it('should return the initial state', () => {
|
|
9
|
+
expect(site()).toEqual({
|
|
10
|
+
error: null,
|
|
11
|
+
data: {},
|
|
12
|
+
loaded: false,
|
|
13
|
+
loading: false,
|
|
14
|
+
});
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
it('should handle GET_SITE_PENDING', () => {
|
|
18
|
+
expect(
|
|
19
|
+
site(undefined, {
|
|
20
|
+
type: `${GET_SITE}_PENDING`,
|
|
21
|
+
}),
|
|
22
|
+
).toEqual({
|
|
23
|
+
error: null,
|
|
24
|
+
data: {},
|
|
25
|
+
loaded: false,
|
|
26
|
+
loading: true,
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
it('should handle GET_SITE_SUCCESS', () => {
|
|
31
|
+
expect(
|
|
32
|
+
site(undefined, {
|
|
33
|
+
type: `${GET_SITE}_SUCCESS`,
|
|
34
|
+
result: {
|
|
35
|
+
title: 'Welcome to Plone!',
|
|
36
|
+
description:
|
|
37
|
+
'Congratulations! You have successfully installed Plone.',
|
|
38
|
+
'@id': `${settings.apiPath}/front-page`,
|
|
39
|
+
},
|
|
40
|
+
}),
|
|
41
|
+
).toEqual({
|
|
42
|
+
error: null,
|
|
43
|
+
data: {
|
|
44
|
+
'@id': `${settings.apiPath}/front-page`,
|
|
45
|
+
title: 'Welcome to Plone!',
|
|
46
|
+
description: 'Congratulations! You have successfully installed Plone.',
|
|
47
|
+
},
|
|
48
|
+
|
|
49
|
+
loaded: true,
|
|
50
|
+
loading: false,
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
it('should handle GET_SITE_FAIL', () => {
|
|
55
|
+
expect(
|
|
56
|
+
site(undefined, {
|
|
57
|
+
type: `${GET_SITE}_FAIL`,
|
|
58
|
+
error: 'failed',
|
|
59
|
+
}),
|
|
60
|
+
).toEqual({
|
|
61
|
+
error: undefined,
|
|
62
|
+
data: {},
|
|
63
|
+
loaded: false,
|
|
64
|
+
loading: false,
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
});
|
|
@@ -3,7 +3,12 @@
|
|
|
3
3
|
* @module reducers/userSession/userSession
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import {
|
|
6
|
+
import {
|
|
7
|
+
LOGIN,
|
|
8
|
+
LOGIN_RENEW,
|
|
9
|
+
LOGOUT,
|
|
10
|
+
RESET_LOGIN_REQUEST,
|
|
11
|
+
} from '@plone/volto/constants/ActionTypes';
|
|
7
12
|
|
|
8
13
|
const initialState = {
|
|
9
14
|
token: null,
|
|
@@ -61,6 +66,15 @@ export default function userSession(state = initialState, action = {}) {
|
|
|
61
66
|
...state,
|
|
62
67
|
token: null,
|
|
63
68
|
};
|
|
69
|
+
case `${RESET_LOGIN_REQUEST}`:
|
|
70
|
+
return {
|
|
71
|
+
...state,
|
|
72
|
+
login: {
|
|
73
|
+
loading: false,
|
|
74
|
+
loaded: false,
|
|
75
|
+
error: null,
|
|
76
|
+
},
|
|
77
|
+
};
|
|
64
78
|
default:
|
|
65
79
|
return state;
|
|
66
80
|
}
|
package/src/server.jsx
CHANGED
|
@@ -263,6 +263,15 @@ server.get('/*', (req, res) => {
|
|
|
263
263
|
const readCriticalCss =
|
|
264
264
|
config.settings.serverConfig.readCriticalCss || defaultReadCriticalCss;
|
|
265
265
|
|
|
266
|
+
// If we are showing an "old browser" warning,
|
|
267
|
+
// make sure it doesn't get cached in a shared cache
|
|
268
|
+
const browserdetect = store.getState().browserdetect;
|
|
269
|
+
if (config.settings.notSupportedBrowsers.includes(browserdetect?.name)) {
|
|
270
|
+
res.set({
|
|
271
|
+
'Cache-Control': 'private',
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
|
|
266
275
|
if (context.url) {
|
|
267
276
|
res.redirect(flattenToAppURL(context.url));
|
|
268
277
|
} else if (context.error_code) {
|
package/test-setup-config.js
CHANGED
|
@@ -49,6 +49,52 @@
|
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
+
.ui.form .fields.error .field textarea,
|
|
53
|
+
.ui.form .fields.error .field select,
|
|
54
|
+
.ui.form .fields.error .field input:not([type]),
|
|
55
|
+
.ui.form .fields.error .field input[type='date'],
|
|
56
|
+
.ui.form .fields.error .field input[type='datetime-local'],
|
|
57
|
+
.ui.form .fields.error .field input[type='email'],
|
|
58
|
+
.ui.form .fields.error .field input[type='number'],
|
|
59
|
+
.ui.form .fields.error .field input[type='password'],
|
|
60
|
+
.ui.form .fields.error .field input[type='search'],
|
|
61
|
+
.ui.form .fields.error .field input[type='tel'],
|
|
62
|
+
.ui.form .fields.error .field input[type='time'],
|
|
63
|
+
.ui.form .fields.error .field input[type='text'],
|
|
64
|
+
.ui.form .fields.error .field input[type='file'],
|
|
65
|
+
.ui.form .fields.error .field input[type='url'],
|
|
66
|
+
.ui.form .field.error textarea,
|
|
67
|
+
.ui.form .field.error select,
|
|
68
|
+
.ui.form .field.error input:not([type]),
|
|
69
|
+
.ui.form .field.error input[type='date'],
|
|
70
|
+
.ui.form .field.error input[type='datetime-local'],
|
|
71
|
+
.ui.form .field.error input[type='email'],
|
|
72
|
+
.ui.form .field.error input[type='number'],
|
|
73
|
+
.ui.form .field.error input[type='password'],
|
|
74
|
+
.ui.form .field.error input[type='search'],
|
|
75
|
+
.ui.form .field.error input[type='tel'],
|
|
76
|
+
.ui.form .field.error input[type='time'],
|
|
77
|
+
.ui.form .field.error input[type='text'],
|
|
78
|
+
.ui.form .field.error input[type='file'],
|
|
79
|
+
.ui.form .field.error input[type='url'],
|
|
80
|
+
.ui.form .field.error textarea:focus,
|
|
81
|
+
.ui.form .field.error select:focus,
|
|
82
|
+
.ui.form .field.error input:not([type]):focus,
|
|
83
|
+
.ui.form .field.error input[type='date']:focus,
|
|
84
|
+
.ui.form .field.error input[type='datetime-local']:focus,
|
|
85
|
+
.ui.form .field.error input[type='email']:focus,
|
|
86
|
+
.ui.form .field.error input[type='number']:focus,
|
|
87
|
+
.ui.form .field.error input[type='password']:focus,
|
|
88
|
+
.ui.form .field.error input[type='search']:focus,
|
|
89
|
+
.ui.form .field.error input[type='tel']:focus,
|
|
90
|
+
.ui.form .field.error input[type='time']:focus,
|
|
91
|
+
.ui.form .field.error input[type='text']:focus,
|
|
92
|
+
.ui.form .field.error input[type='file']:focus,
|
|
93
|
+
.ui.form .field.error input[type='url']:focus {
|
|
94
|
+
border-color: #d01157;
|
|
95
|
+
background: none;
|
|
96
|
+
}
|
|
97
|
+
|
|
52
98
|
.ui.form .field > .selection.dropdown {
|
|
53
99
|
height: 60px;
|
|
54
100
|
}
|
|
@@ -6,6 +6,16 @@
|
|
|
6
6
|
font-weight: @inputFontWeight;
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
+
/* This aligns the height of the field name label to the other side in case
|
|
10
|
+
of an error is present, it overrides a default from SemanticUI grid definitions. */
|
|
11
|
+
.inline.field .ui.grid > .stretched.row > .column > .wrapper {
|
|
12
|
+
flex-grow: 0;
|
|
13
|
+
}
|
|
14
|
+
/* Exception - Toolbar */
|
|
15
|
+
#toolbar .inline.field .ui.grid > .stretched.row > .column > .wrapper {
|
|
16
|
+
flex-grow: 1;
|
|
17
|
+
}
|
|
18
|
+
|
|
9
19
|
.inline.field {
|
|
10
20
|
.wrapper {
|
|
11
21
|
display: flex;
|
|
@@ -4,6 +4,24 @@ const MiniCssExtractPlugin = require('mini-css-extract-plugin');
|
|
|
4
4
|
const PostCssFlexBugFixes = require('postcss-flexbugs-fixes');
|
|
5
5
|
const postcssLoadConfig = require('postcss-load-config');
|
|
6
6
|
|
|
7
|
+
const interpolateName = require('loader-utils').interpolateName;
|
|
8
|
+
|
|
9
|
+
function normalizePath(file) {
|
|
10
|
+
return path.sep === '\\' ? file.replace(/\\/g, '/') : file;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
// Custom function to not use 'loaderContext._module.matchResource' in hashing CSS class name.
|
|
14
|
+
function getLocalIdent(loaderContext, localIdentName, localName, options) {
|
|
15
|
+
const relativeResourcePath = normalizePath(
|
|
16
|
+
path.relative(options.context, loaderContext.resourcePath),
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
// eslint-disable-next-line no-param-reassign
|
|
20
|
+
options.content = `${options.hashPrefix}${relativeResourcePath}\x00${localName}`;
|
|
21
|
+
|
|
22
|
+
return interpolateName(loaderContext, localIdentName, options);
|
|
23
|
+
}
|
|
24
|
+
|
|
7
25
|
const hasPostCssConfig = () => {
|
|
8
26
|
try {
|
|
9
27
|
return !!postcssLoadConfig.sync();
|
|
@@ -52,6 +70,7 @@ const defaultOptions = {
|
|
|
52
70
|
modules: {
|
|
53
71
|
auto: true,
|
|
54
72
|
localIdentName: '[name]__[local]___[hash:base64:5]',
|
|
73
|
+
getLocalIdent: getLocalIdent,
|
|
55
74
|
},
|
|
56
75
|
},
|
|
57
76
|
},
|
package/.gitignore~
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
# Node
|
|
2
|
-
node_modules
|
|
3
|
-
coverage
|
|
4
|
-
jsdoc
|
|
5
|
-
webpack-assets.json
|
|
6
|
-
webpack-stats.json
|
|
7
|
-
npm-debug.log
|
|
8
|
-
junit.xml
|
|
9
|
-
eslint.xml
|
|
10
|
-
yarn-error.log
|
|
11
|
-
build
|
|
12
|
-
|
|
13
|
-
# Other
|
|
14
|
-
.DS_Store
|
|
15
|
-
.idea
|
|
16
|
-
lighthouse-report.html
|
|
17
|
-
.vscode/
|
|
18
|
-
.#*
|
|
19
|
-
*~
|
|
20
|
-
|
|
21
|
-
# Python
|
|
22
|
-
/api/.installed.cfg
|
|
23
|
-
/api/.mr.developer.cfg
|
|
24
|
-
/api/bin/
|
|
25
|
-
/api/develop-eggs/
|
|
26
|
-
/api/eggs/
|
|
27
|
-
/api/include/
|
|
28
|
-
/api/lib/
|
|
29
|
-
/api/lib64/
|
|
30
|
-
/api/notebook/env/
|
|
31
|
-
/api/parts/
|
|
32
|
-
/api/share/python-wheels/
|
|
33
|
-
/api/src/
|
|
34
|
-
/api/test/
|
|
35
|
-
/api/var/
|
|
36
|
-
/api/venv/
|
|
37
|
-
/bin/
|
|
38
|
-
/lib/
|
|
39
|
-
.Python
|
|
40
|
-
include
|
|
41
|
-
pip-selfcheck.json
|
|
42
|
-
pyvenv.cfg
|
|
43
|
-
share
|
|
44
|
-
/api/lib64
|
|
45
|
-
lib64
|
|
46
|
-
|
|
47
|
-
# locales
|
|
48
|
-
locales/*.json
|
|
49
|
-
|
|
50
|
-
# Tests
|
|
51
|
-
/tests/bin
|
|
52
|
-
/tests/develop-eggs
|
|
53
|
-
/tests/parts
|
|
54
|
-
/tests/.installed.cfg
|
|
55
|
-
*.pyc
|
|
56
|
-
geckodriver.log
|
|
57
|
-
log.html
|
|
58
|
-
output.xml
|
|
59
|
-
report.html
|
|
60
|
-
selenium-screenshot-*.png
|
|
61
|
-
/selenium/
|
|
62
|
-
cypress/videos/
|
|
63
|
-
cypress/screenshots
|
|
64
|
-
|
|
65
|
-
# Local environment setup
|
|
66
|
-
.env
|
|
67
|
-
public/critical.css
|
|
68
|
-
|
|
69
|
-
# Sphinx and MyST
|
|
70
|
-
docs/_build/
|
|
71
|
-
/.python-version
|
package/news/4547.breaking~
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
Update parse-url and release-it libraries. @davisagli
|