@aarhus-university/au-lib-react-components 9.11.19 → 10.0.2
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/.eslintrc.js +44 -0
- package/README.md +19 -20
- package/babel.config.js +7 -6
- package/build/umd/all.css +1 -1
- package/build/umd/all.css.map +1 -1
- package/build/umd/all.js +1 -1
- package/build/umd/all.js.map +1 -1
- package/build/umd/alphabox.js +1 -1
- package/build/umd/alphabox.js.map +1 -1
- package/build/umd/databox.js +1 -2
- package/build/umd/databox.js.map +1 -1
- package/build/umd/diagramme.js +1 -1
- package/build/umd/diagramme.js.map +1 -1
- package/build/umd/flowbox.js +1 -1
- package/build/umd/flowbox.js.map +1 -1
- package/build/umd/universe.js +1 -1
- package/build/umd/universe.js.map +1 -1
- package/package.json +66 -60
- package/src/components/{delphinus/AUAlertComponent.js → AUAlertComponent.tsx} +70 -85
- package/src/components/{AutoSuggestComponent.js → AUAutoSuggestComponent.js} +45 -19
- package/src/components/AUCalendarComponent.tsx +493 -0
- package/src/components/AUContentToggleComponent.tsx +33 -0
- package/src/components/AUDatepickerComponent.tsx +117 -0
- package/src/components/AUMobilePrefixComponent.tsx +15 -0
- package/src/components/{delphinus/AUModalComponent.js → AUModalComponent.tsx} +80 -94
- package/src/components/{form/AUReceiptComponent.js → AUReceiptComponent.tsx} +33 -40
- package/src/components/AUSpinnerComponent.tsx +67 -0
- package/src/components/{delphinus/AUSubNavComponent.js → AUSubNavComponent.tsx} +38 -53
- package/src/components/{form/AUSubmitButtonContainerComponent.js → AUSubmitButtonContainerComponent.tsx} +31 -39
- package/src/components/{delphinus/AUTabbedContentComponent.js → AUTabbedContentComponent.tsx} +145 -150
- package/src/components/{delphinus/AUTableComponent.js → AUTableComponent.tsx} +24 -28
- package/src/components/{delphinus/AUToastComponent.js → AUToastComponent.tsx} +104 -91
- package/src/components/{delphinus/AUToolbarComponent.js → AUToolbarComponent.tsx} +45 -48
- package/src/components/profile/AUProfileActions.js +128 -128
- package/src/components/profile/AUProfileAvatarComponent.js +83 -83
- package/src/components/profile/AUProfileAvatarV2Component.js +91 -91
- package/src/components/profile/AUProfileAvatarV3Component.tsx +42 -0
- package/src/components/profile/AUProfileContainerComponent.js +283 -283
- package/src/components/profile/AUProfileHooks.js +30 -30
- package/src/components/profile/AUProfileItemComponent.js +54 -54
- package/src/components/profile/AUProfileLanguageComponent.js +131 -131
- package/src/components/profile/{AUProfileLoginComponent.js → AUProfileLoginComponent.tsx} +3 -18
- package/src/components/profile/AUProfileMailComponent.js +307 -307
- package/src/components/profile/AUProfileMobileComponent.js +164 -164
- package/src/components/profile/AUProfileNameComponent.js +253 -253
- package/src/components/profile/AUProfileNextOfKinComponent.js +216 -216
- package/src/components/profile/AUProfileReducer.js +230 -230
- package/src/components/profile/AUProfileWidgetComponent.js +95 -95
- package/src/components/profile/AUProfileWidgetV2Component.js +116 -116
- package/src/components/profile/{AUProfileWidgetV3Component.js → AUProfileWidgetV3Component.tsx} +122 -130
- package/src/components/wrapping/AUEmbedComponent.js +47 -47
- package/src/{components → layout-2016/components}/alphabox/AlphaBoxComponent.js +28 -25
- package/src/{components → layout-2016/components}/alphabox/AlphaBoxContentComponent.js +25 -14
- package/src/{components → layout-2016/components/common}/AUCollapsibleComponent.js +1 -22
- package/src/{components → layout-2016/components/common}/AUSpinnerComponent.js +2 -24
- package/src/{components → layout-2016/components}/databox/DataBoxAlphabetComponent.js +1 -1
- package/src/{components → layout-2016/components}/databox/DataBoxAssociationComponent.js +2 -2
- package/src/{components → layout-2016/components}/databox/DataBoxButtonComponent.js +7 -3
- package/src/{components → layout-2016/components}/databox/DataBoxComponent.js +2 -2
- package/src/{components → layout-2016/components}/databox/DataBoxGroupingComponent.js +2 -0
- package/src/{components → layout-2016/components}/databox/DataBoxSearchResultComponent.js +1 -5
- package/src/{components → layout-2016/components}/databox/DataBoxStackedAssociationComponent.js +1 -5
- package/src/{components → layout-2016/components}/databox/DataBoxSuggestionComponent.js +0 -0
- package/src/{components → layout-2016/components/diagramme}/AUDiagrammeComponent.js +5 -6
- package/src/{components → layout-2016/components}/flowbox/FlowBoxComponent.js +8 -8
- package/src/{components → layout-2016/components}/flowbox/FlowBoxPhoneComponent.js +3 -5
- package/src/{components → layout-2016/components}/profile/AUProfileAvatar2016Component.js +6 -2
- package/src/{components → layout-2016/components}/universe/StaffTopComponent.js +4 -3
- package/src/{components → layout-2016/components}/universe/StudentTopComponent.js +0 -0
- package/src/{components → layout-2016/components}/universe/UniverseContainerComponent.js +11 -8
- package/src/layout-2016/lib/all.js +3 -0
- package/src/{lib → layout-2016/lib}/au-alphabox.js +1 -3
- package/src/{lib → layout-2016/lib}/au-databox.js +6 -9
- package/src/{lib → layout-2016/lib}/au-diagramme.js +2 -4
- package/src/{lib → layout-2016/lib}/au-flowbox.js +1 -3
- package/src/{lib → layout-2016/lib}/universe.js +0 -0
- package/src/lib/{helpers.js → helpers.ts} +31 -59
- package/src/{components/delphinus/hooks.js → lib/hooks.ts} +33 -28
- package/src/lib/{i18n.js → i18n.ts} +600 -601
- package/src/lib/{tracking.js → tracking.ts} +69 -65
- package/src/lib/{wrapping.js → wrapping.ts} +21 -16
- package/src/styles/_settings.scss +10 -10
- package/src/styles/alphabox.scss +222 -208
- package/src/styles/app.scss +7 -13
- package/src/styles/autosuggest.scss +57 -57
- package/src/styles/databox.scss +563 -563
- package/src/styles/diagramme.scss +119 -119
- package/src/styles/flowbox.scss +72 -72
- package/src/styles/maps.scss +395 -395
- package/tsconfig.json +47 -0
- package/types/common/interfaces/gui.d.ts +63 -0
- package/types/common/interfaces/model.d.ts +29 -0
- package/types/common/main.d.ts +5 -0
- package/types/common/package.json +5 -0
- package/types/common/payloads.d.ts +0 -0
- package/types/common/props.d.ts +165 -0
- package/{src/config/webpack.umd.config.js → webpack.config.js} +20 -16
- package/.eslintrc +0 -19
- package/build/dev.html +0 -329
- package/build/umd/auAuth.js +0 -2
- package/build/umd/auAuth.js.map +0 -1
- package/build/umd/databox.js.LICENSE.txt +0 -5
- package/build/umd/news.js +0 -2
- package/build/umd/news.js.map +0 -1
- package/src/all.js +0 -3
- package/src/app.js +0 -263
- package/src/components/AUAlertComponent.js +0 -158
- package/src/components/AUAmountComponent.js +0 -84
- package/src/components/AUBannerComponent.js +0 -99
- package/src/components/AUCalendarComponent.js +0 -393
- package/src/components/AUDatepickerComponent.js +0 -105
- package/src/components/AUFilterCheckboxComponent.js +0 -122
- package/src/components/AUFocusComponent.js +0 -55
- package/src/components/AUModalComponent.js +0 -94
- package/src/components/AUPaginationComponent.js +0 -103
- package/src/components/context/AUUserContextComponent.js +0 -91
- package/src/components/context/ImpersonateComponent.js +0 -54
- package/src/components/delphinus/AUCalendarComponent.js +0 -487
- package/src/components/delphinus/AUContentToggleComponent.js +0 -32
- package/src/components/delphinus/AUDatepickerComponent.js +0 -164
- package/src/components/delphinus/AULoginComponent.js +0 -65
- package/src/components/delphinus/AUSpinnerComponent.js +0 -114
- package/src/components/form/AUMobilePrefixComponent.js +0 -18
- package/src/components/news/EventLayout1Component.js +0 -94
- package/src/components/news/EventLayout2Component.js +0 -90
- package/src/components/news/EventLayout3Component.js +0 -68
- package/src/components/news/NewsCategoriesComponent.js +0 -21
- package/src/components/news/NewsCollageBannerComponent.js +0 -71
- package/src/components/news/NewsCollageBannerRSSComponent.js +0 -79
- package/src/components/news/NewsColumnsComponent.js +0 -125
- package/src/components/news/NewsLanguageChangeComponent.js +0 -74
- package/src/components/news/NewsLayout1Component.js +0 -80
- package/src/components/news/NewsLayout2Component.js +0 -80
- package/src/components/news/NewsLayout3Component.js +0 -81
- package/src/components/news/NewsLayout4Component.js +0 -80
- package/src/components/news/NewsLayout5Component.js +0 -61
- package/src/components/news/NewsLayout6Component.js +0 -55
- package/src/components/news/NewsLayout7Component.js +0 -58
- package/src/components/news/NewsLayout8Component.js +0 -57
- package/src/components/news/NewsListComponent.js +0 -291
- package/src/components/news/NewsPopUpComponent.js +0 -591
- package/src/components/news/NewsRSSComponent.js +0 -74
- package/src/components/news/NewsSocialComponent.js +0 -104
- package/src/components/news/NewsSubHeaderComponent.js +0 -19
- package/src/components/password/AUChangePasswordComponent.js +0 -177
- package/src/components/password/AUCurrentPasswordComponent.js +0 -72
- package/src/components/password/AUNewPasswordComponent.js +0 -143
- package/src/components/password/AUPasswordActions.js +0 -101
- package/src/components/password/AUPasswordHooks.js +0 -47
- package/src/components/password/AUPasswordReducer.js +0 -78
- package/src/components/password/AUPasswordRequirementsComponent.js +0 -29
- package/src/components/profile/AUProfileAvatarV3Component.js +0 -80
- package/src/config/webpack.dev.config.js +0 -47
- package/src/index.js +0 -6
- package/src/lib/au-auth.js +0 -227
- package/src/lib/au-news.js +0 -371
- package/src/lib/menu.js +0 -10
- package/src/lib/urlHandler.js +0 -63
- package/src/lib/validation.js +0 -181
- package/src/styles/alert.scss +0 -39
- package/src/styles/calendar.scss +0 -112
- package/src/styles/filtercheckbox.scss +0 -5
- package/src/styles/modal.scss +0 -35
- package/src/styles/pagination.scss +0 -11
- package/src/styles/spinner.scss +0 -30
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
/* eslint-env browser */
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
|
-
import axios from 'axios';
|
|
5
4
|
import AlphaBoxContentComponent from './AlphaBoxContentComponent';
|
|
6
|
-
import
|
|
5
|
+
import AUAutoSuggestComponent from '../../../components/AUAutoSuggestComponent';
|
|
7
6
|
import DataBoxSuggestionComponent from '../databox/DataBoxSuggestionComponent';
|
|
8
7
|
|
|
9
8
|
class AlphaBoxComponent extends React.Component {
|
|
@@ -24,19 +23,22 @@ class AlphaBoxComponent extends React.Component {
|
|
|
24
23
|
if (data.itemsOnly) {
|
|
25
24
|
data.source += '?itemsOnly=true';
|
|
26
25
|
}
|
|
27
|
-
|
|
28
|
-
const { data: pData } = promise;
|
|
26
|
+
fetch(data.source).then((promise) => promise.json()).then((pData) => {
|
|
29
27
|
this.setState({ items: pData.items });
|
|
30
28
|
});
|
|
31
29
|
}
|
|
32
30
|
}
|
|
33
31
|
|
|
34
|
-
getSuggestions(value,
|
|
32
|
+
getSuggestions(value, _, callback) {
|
|
35
33
|
const { items } = this.state;
|
|
36
34
|
const inputValue = value.trim().toLowerCase();
|
|
37
35
|
const inputLength = inputValue.length;
|
|
38
36
|
callback(inputLength < 2 ? []
|
|
39
|
-
: items.filter(
|
|
37
|
+
: items.filter(
|
|
38
|
+
(x) => x.name.toLowerCase().indexOf(inputValue) > -1
|
|
39
|
+
|| x.name.replace(/-/ig, ' ').toLowerCase().indexOf(inputValue) > -1
|
|
40
|
+
|| x.name.replace(/ /ig, '-').toLowerCase().indexOf(inputValue) > -1,
|
|
41
|
+
)
|
|
40
42
|
.sort((a, b) => a.name.toLowerCase().localeCompare(b.name.toLowerCase(), 'da', { ignorePunctuation: true })));
|
|
41
43
|
}
|
|
42
44
|
|
|
@@ -66,31 +68,16 @@ class AlphaBoxComponent extends React.Component {
|
|
|
66
68
|
<h2>
|
|
67
69
|
<a href={config.url}>{config.title}</a>
|
|
68
70
|
</h2>
|
|
69
|
-
{(() => {
|
|
70
|
-
if (config.description !== '') {
|
|
71
|
-
return <p>{config.description}</p>;
|
|
72
|
-
}
|
|
73
|
-
return null;
|
|
74
|
-
})()}
|
|
75
|
-
{(() => {
|
|
76
|
-
if (config.links.length > 0) {
|
|
77
|
-
return (
|
|
78
|
-
<ul className="quicklinks resetlist">
|
|
79
|
-
{renderLinks}
|
|
80
|
-
</ul>
|
|
81
|
-
);
|
|
82
|
-
}
|
|
83
|
-
return null;
|
|
84
|
-
})()}
|
|
85
71
|
<AlphaBoxContentComponent
|
|
86
72
|
items={items}
|
|
87
73
|
linkColor={box.background.linkColor}
|
|
74
|
+
noResultsText={config.noResultsAlphabet}
|
|
75
|
+
noResultsUri={config.noResultsUri}
|
|
88
76
|
/>
|
|
89
|
-
<
|
|
77
|
+
<AUAutoSuggestComponent
|
|
90
78
|
placeholder={box.search.placeHolder}
|
|
91
|
-
setQuery={() => { }}
|
|
92
79
|
setResults={(_items) => {
|
|
93
|
-
if (_items.length
|
|
80
|
+
if (_items.length >= 1 && _items[0].url) {
|
|
94
81
|
window.location.href = _items[0].url;
|
|
95
82
|
}
|
|
96
83
|
}}
|
|
@@ -98,7 +85,20 @@ class AlphaBoxComponent extends React.Component {
|
|
|
98
85
|
getSuggestions={this.getSuggestions}
|
|
99
86
|
getSuggestionValue={(suggestion) => suggestion.name}
|
|
100
87
|
renderSuggestion={(suggestion) => <DataBoxSuggestionComponent item={suggestion} />}
|
|
88
|
+
noResultsText={config.noResultsSearch}
|
|
101
89
|
/>
|
|
90
|
+
{
|
|
91
|
+
config.description !== '' && (
|
|
92
|
+
<h3>{config.description}</h3>
|
|
93
|
+
)
|
|
94
|
+
}
|
|
95
|
+
{
|
|
96
|
+
config.links.length > 0 && (
|
|
97
|
+
<ul className="quicklinks resetlist">
|
|
98
|
+
{renderLinks}
|
|
99
|
+
</ul>
|
|
100
|
+
)
|
|
101
|
+
}
|
|
102
102
|
</div>
|
|
103
103
|
</div>
|
|
104
104
|
);
|
|
@@ -124,6 +124,9 @@ AlphaBoxComponent.propTypes = {
|
|
|
124
124
|
url: PropTypes.string.isRequired,
|
|
125
125
|
})).isRequired,
|
|
126
126
|
title: PropTypes.string.isRequired,
|
|
127
|
+
noResultsAlphabet: PropTypes.string.isRequired,
|
|
128
|
+
noResultsSearch: PropTypes.string.isRequired,
|
|
129
|
+
noResultsUri: PropTypes.string.isRequired,
|
|
127
130
|
}).isRequired,
|
|
128
131
|
background: PropTypes.shape({
|
|
129
132
|
color: PropTypes.string.isRequired,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
-
import { sortAlphaObj } from '
|
|
3
|
+
import { sortAlphaObj } from '../../../lib/helpers';
|
|
4
4
|
|
|
5
5
|
class AlphaBoxContentComponent extends React.Component {
|
|
6
6
|
constructor(props) {
|
|
@@ -13,7 +13,9 @@ class AlphaBoxContentComponent extends React.Component {
|
|
|
13
13
|
|
|
14
14
|
render() {
|
|
15
15
|
const { letterIndex } = this.state;
|
|
16
|
-
const {
|
|
16
|
+
const {
|
|
17
|
+
items, linkColor, noResultsText, noResultsUri,
|
|
18
|
+
} = this.props;
|
|
17
19
|
|
|
18
20
|
const renderLetters = this.letters.map((l, i) => {
|
|
19
21
|
const available = items.filter(
|
|
@@ -96,29 +98,38 @@ class AlphaBoxContentComponent extends React.Component {
|
|
|
96
98
|
<ul className="letters">
|
|
97
99
|
{renderLetters}
|
|
98
100
|
</ul>
|
|
99
|
-
{
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
<
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
101
|
+
{
|
|
102
|
+
letterIndex > -1 && (
|
|
103
|
+
<div>
|
|
104
|
+
<ul className="items">
|
|
105
|
+
{renderItems}
|
|
106
|
+
{
|
|
107
|
+
(noResultsText && noResultsUri) && (
|
|
108
|
+
<li className="no-results"><a href={noResultsUri}>{noResultsText}</a></li>
|
|
109
|
+
)
|
|
110
|
+
}
|
|
111
|
+
</ul>
|
|
112
|
+
</div>
|
|
113
|
+
)
|
|
114
|
+
}
|
|
111
115
|
</div>
|
|
112
116
|
);
|
|
113
117
|
}
|
|
114
118
|
}
|
|
115
119
|
|
|
120
|
+
AlphaBoxContentComponent.defaultProps = {
|
|
121
|
+
noResultsText: '',
|
|
122
|
+
noResultsUri: '',
|
|
123
|
+
};
|
|
124
|
+
|
|
116
125
|
AlphaBoxContentComponent.propTypes = {
|
|
117
126
|
linkColor: PropTypes.string.isRequired,
|
|
118
127
|
items: PropTypes.arrayOf(PropTypes.shape({
|
|
119
128
|
name: PropTypes.string.isRequired,
|
|
120
129
|
url: PropTypes.string.isRequired,
|
|
121
130
|
})).isRequired,
|
|
131
|
+
noResultsText: PropTypes.string,
|
|
132
|
+
noResultsUri: PropTypes.string,
|
|
122
133
|
};
|
|
123
134
|
|
|
124
135
|
AlphaBoxContentComponent.displayName = 'AlphaBoxContentComponent';
|
|
@@ -1,28 +1,7 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-empty-function */
|
|
1
2
|
import React from 'react';
|
|
2
3
|
import PropTypes from 'prop-types';
|
|
3
4
|
|
|
4
|
-
/**
|
|
5
|
-
* AU Kollapserbart Komponent
|
|
6
|
-
*
|
|
7
|
-
* Eksempel:
|
|
8
|
-
* ```jsx
|
|
9
|
-
* <AUCollapsibleComponent
|
|
10
|
-
key="collapse"
|
|
11
|
-
collapsed
|
|
12
|
-
header="Collapsible element"
|
|
13
|
-
level={2}
|
|
14
|
-
className="hide-for-small-only"
|
|
15
|
-
onClick={(collapsed, node) => {
|
|
16
|
-
this.setState({
|
|
17
|
-
spinnerVisible: !collapsed,
|
|
18
|
-
});
|
|
19
|
-
}}
|
|
20
|
-
>
|
|
21
|
-
<h1>Test</h1>
|
|
22
|
-
</AUCollapsibleComponent>
|
|
23
|
-
* ```
|
|
24
|
-
*/
|
|
25
|
-
|
|
26
5
|
class AUCollapsibleComponent extends React.Component {
|
|
27
6
|
constructor(props) {
|
|
28
7
|
super(props);
|
|
@@ -1,30 +1,8 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-empty-function */
|
|
1
2
|
/* eslint-env browser */
|
|
2
3
|
import React from 'react';
|
|
3
4
|
import PropTypes from 'prop-types';
|
|
4
|
-
import { isElementInViewport } from '
|
|
5
|
-
/**
|
|
6
|
-
* AU Spinner Komponent
|
|
7
|
-
* Bliver brugt til lazy-loading af elementer, der først skal indlæses når de er synlige.
|
|
8
|
-
*
|
|
9
|
-
* Eksempel:
|
|
10
|
-
* ```jsx
|
|
11
|
-
* <AUSpinnerComponent
|
|
12
|
-
domID={spinnerID}
|
|
13
|
-
visible={this.state.spinnerVisible}
|
|
14
|
-
columns="large-12 medium-12 small-12"
|
|
15
|
-
content={<h1>Hej</h1>}
|
|
16
|
-
loaded={this.state.spinnerLoaded}
|
|
17
|
-
loadingCondition
|
|
18
|
-
onLoad={() => {
|
|
19
|
-
setTimeout(() => {
|
|
20
|
-
this.setState({
|
|
21
|
-
spinnerLoaded: true,
|
|
22
|
-
});
|
|
23
|
-
}, 2000);
|
|
24
|
-
}}
|
|
25
|
-
/>
|
|
26
|
-
* ```
|
|
27
|
-
*/
|
|
5
|
+
import { isElementInViewport } from '../../../lib/helpers';
|
|
28
6
|
|
|
29
7
|
class AUSpinnerComponent extends React.Component {
|
|
30
8
|
constructor(props) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* eslint-env browser */
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
|
-
import { sortAlphaObj } from '
|
|
4
|
+
import { sortAlphaObj } from '../../../lib/helpers';
|
|
5
5
|
|
|
6
6
|
class DataBoxAlphabetComponent extends React.Component {
|
|
7
7
|
constructor(props) {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/* eslint-env browser */
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
|
-
import { sortAlphaObj } from '
|
|
5
|
-
import AUCollapsibleComponent from '../AUCollapsibleComponent';
|
|
4
|
+
import { sortAlphaObj } from '../../../lib/helpers';
|
|
5
|
+
import AUCollapsibleComponent from '../common/AUCollapsibleComponent';
|
|
6
6
|
|
|
7
7
|
class DataBoxAssociationComponent extends React.Component {
|
|
8
8
|
constructor(props) {
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-empty-function */
|
|
1
2
|
/* eslint-env browser */
|
|
2
3
|
import React from 'react';
|
|
3
4
|
import PropTypes from 'prop-types';
|
|
4
|
-
import
|
|
5
|
+
import AUAutoSuggestComponent from '../../../components/AUAutoSuggestComponent';
|
|
5
6
|
import DataBoxSuggestionComponent from './DataBoxSuggestionComponent';
|
|
6
7
|
|
|
7
8
|
class DataBoxButtonComponent extends React.Component {
|
|
@@ -58,7 +59,7 @@ class DataBoxButtonComponent extends React.Component {
|
|
|
58
59
|
return (
|
|
59
60
|
<div className={classNames} key={i}>
|
|
60
61
|
<span dangerouslySetInnerHTML={{ __html: b.text }} />
|
|
61
|
-
<
|
|
62
|
+
<AUAutoSuggestComponent
|
|
62
63
|
placeholder={box.search.placeHolder}
|
|
63
64
|
setQuery={() => { }}
|
|
64
65
|
setResults={(items) => {
|
|
@@ -130,7 +131,10 @@ DataBoxButtonComponent.propTypes = {
|
|
|
130
131
|
searchValue: PropTypes.string,
|
|
131
132
|
setActive: PropTypes.func.isRequired,
|
|
132
133
|
setSearchValue: PropTypes.func.isRequired,
|
|
133
|
-
button: PropTypes.shape({
|
|
134
|
+
button: PropTypes.shape({
|
|
135
|
+
text: PropTypes.string.isRequired,
|
|
136
|
+
link: PropTypes.string.isRequired,
|
|
137
|
+
}).isRequired,
|
|
134
138
|
box: PropTypes.shape({
|
|
135
139
|
background: PropTypes.shape({
|
|
136
140
|
color: PropTypes.string.isRequired,
|
|
@@ -7,8 +7,8 @@ import DataBoxButtonComponent from './DataBoxButtonComponent';
|
|
|
7
7
|
import DataBoxGroupingComponent from './DataBoxGroupingComponent';
|
|
8
8
|
import DataBoxSearchResultComponent from './DataBoxSearchResultComponent';
|
|
9
9
|
import DataBoxAlphabetComponent from './DataBoxAlphabetComponent';
|
|
10
|
-
import AUSpinnerComponent from '../AUSpinnerComponent';
|
|
11
|
-
import { sortAlphaObj } from '
|
|
10
|
+
import AUSpinnerComponent from '../common/AUSpinnerComponent';
|
|
11
|
+
import { sortAlphaObj } from '../../../lib/helpers';
|
|
12
12
|
|
|
13
13
|
class DataBoxComponent extends React.Component {
|
|
14
14
|
constructor(props) {
|
|
@@ -14,10 +14,12 @@ const DataBoxGroupingComponent = (props) => {
|
|
|
14
14
|
} = props;
|
|
15
15
|
let renderAssociations;
|
|
16
16
|
if (stacked && grouping.associations.length === 1) {
|
|
17
|
+
// eslint-disable-next-line react/destructuring-assignment
|
|
17
18
|
renderAssociations = props.grouping.associations.map(
|
|
18
19
|
(a) => <DataBoxStackedAssociationComponent key={a.id} assoc={a} />,
|
|
19
20
|
);
|
|
20
21
|
} else {
|
|
22
|
+
// eslint-disable-next-line react/destructuring-assignment
|
|
21
23
|
renderAssociations = props.grouping.associations.map((a, i) => {
|
|
22
24
|
const open = expand
|
|
23
25
|
|| grouping.associations.length === 1
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
-
import { sortAlphaObj } from '
|
|
3
|
+
import { sortAlphaObj } from '../../../lib/helpers';
|
|
4
4
|
|
|
5
5
|
const DataBoxSearchResultComponent = (props) => {
|
|
6
6
|
const { items, searchValue } = props;
|
|
@@ -23,10 +23,6 @@ const DataBoxSearchResultComponent = (props) => {
|
|
|
23
23
|
);
|
|
24
24
|
};
|
|
25
25
|
|
|
26
|
-
DataBoxSearchResultComponent.defaultProps = {
|
|
27
|
-
|
|
28
|
-
};
|
|
29
|
-
|
|
30
26
|
DataBoxSearchResultComponent.propTypes = {
|
|
31
27
|
items: PropTypes.arrayOf(PropTypes.shape({
|
|
32
28
|
id: PropTypes.number.isRequired,
|
package/src/{components → layout-2016/components}/databox/DataBoxStackedAssociationComponent.js
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
-
import { sortAlphaObj } from '
|
|
3
|
+
import { sortAlphaObj } from '../../../lib/helpers';
|
|
4
4
|
|
|
5
5
|
const DataBoxStackedAssociationComponent = (props) => {
|
|
6
6
|
const { assoc } = props;
|
|
@@ -44,10 +44,6 @@ const DataBoxStackedAssociationComponent = (props) => {
|
|
|
44
44
|
);
|
|
45
45
|
};
|
|
46
46
|
|
|
47
|
-
DataBoxStackedAssociationComponent.defaultProps = {
|
|
48
|
-
|
|
49
|
-
};
|
|
50
|
-
|
|
51
47
|
DataBoxStackedAssociationComponent.propTypes = {
|
|
52
48
|
assoc: PropTypes.shape({
|
|
53
49
|
items: PropTypes.arrayOf(PropTypes.shape({})).isRequired,
|
|
File without changes
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
/* eslint no-mixed-operators: 0 */
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import PropTypes from 'prop-types';
|
|
5
|
-
import axios from 'axios';
|
|
6
5
|
|
|
7
6
|
const diagrammeLabels = {
|
|
8
7
|
da: {
|
|
@@ -82,16 +81,16 @@ class AUDiagrammeComponent extends React.PureComponent {
|
|
|
82
81
|
response.lines.forEach((value, key) => {
|
|
83
82
|
promises.push(new Promise((resolve) => {
|
|
84
83
|
const url = `https://eddiprod.au.dk/EDDI/webservices/StudieoversigtService2.cfc?method=GetStudiediagramData&lang=en&allowOrigin=true&linjeid=${value.id}`;
|
|
85
|
-
|
|
86
|
-
const periodType =
|
|
84
|
+
fetch(url).then((promise) => promise.json()).then((data) => {
|
|
85
|
+
const periodType = data.DiagramMetaData.DATA[0] ? data.DiagramMetaData.DATA[0][3] : '';
|
|
87
86
|
const node = {
|
|
88
87
|
name: lang === 'da' ? value.name : value.nameEnglish,
|
|
89
88
|
periodType,
|
|
90
|
-
table: AUDiagrammeComponent.diagrammeParse(
|
|
91
|
-
list: AUDiagrammeComponent.diagrammeParse(
|
|
89
|
+
table: AUDiagrammeComponent.diagrammeParse(data, lang),
|
|
90
|
+
list: AUDiagrammeComponent.diagrammeParse(data, lang, 'list'),
|
|
92
91
|
};
|
|
93
92
|
nodes[key] = node;
|
|
94
|
-
resolve(
|
|
93
|
+
resolve(data);
|
|
95
94
|
});
|
|
96
95
|
}));
|
|
97
96
|
});
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import React from 'react';
|
|
6
6
|
import PropTypes from 'prop-types';
|
|
7
7
|
import FlowBoxPhoneComponent from './FlowBoxPhoneComponent';
|
|
8
|
-
import { flowboxLabels as labels } from '
|
|
8
|
+
import { flowboxLabels as labels } from '../../../lib/i18n';
|
|
9
9
|
|
|
10
10
|
class FlowBoxComponent extends React.Component {
|
|
11
11
|
constructor(props) {
|
|
@@ -20,23 +20,23 @@ class FlowBoxComponent extends React.Component {
|
|
|
20
20
|
this.handleSelectChange = this.handleSelectChange.bind(this);
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
handleSelectChange(event) {
|
|
24
|
+
const { node } = this.state;
|
|
25
|
+
const child = node.children.find((n) => n.name === event.target.value);
|
|
24
26
|
this.setState({
|
|
25
27
|
node: child,
|
|
26
28
|
});
|
|
27
29
|
}
|
|
28
30
|
|
|
29
|
-
|
|
31
|
+
nextNode(child) {
|
|
30
32
|
this.setState({
|
|
31
|
-
node:
|
|
33
|
+
node: child,
|
|
32
34
|
});
|
|
33
35
|
}
|
|
34
36
|
|
|
35
|
-
|
|
36
|
-
const { node } = this.state;
|
|
37
|
-
const child = node.children.find((n) => n.name === event.target.value);
|
|
37
|
+
prevNode(node) {
|
|
38
38
|
this.setState({
|
|
39
|
-
node:
|
|
39
|
+
node: node.parent,
|
|
40
40
|
});
|
|
41
41
|
}
|
|
42
42
|
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
/* eslint-env browser */
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import { flowboxLabels as labels } from '../../lib/i18n';
|
|
4
|
+
import AUSpinnerComponent from '../common/AUSpinnerComponent';
|
|
5
|
+
import { flowboxLabels as labels } from '../../../lib/i18n';
|
|
7
6
|
|
|
8
7
|
class FlowBoxPhoneComponent extends React.Component {
|
|
9
8
|
constructor(props) {
|
|
@@ -16,8 +15,7 @@ class FlowBoxPhoneComponent extends React.Component {
|
|
|
16
15
|
componentDidMount() {
|
|
17
16
|
const { phone } = this.props;
|
|
18
17
|
const iPureUrl = `https://ipure.nfit.au.dk/searchPeople.php?mode=json&q=${phone}`;
|
|
19
|
-
|
|
20
|
-
const persons = promise.data;
|
|
18
|
+
fetch(iPureUrl).then((promise) => promise.json()).then((persons) => {
|
|
21
19
|
this.setState({
|
|
22
20
|
persons,
|
|
23
21
|
}, () => {
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
/* eslint-env browser */
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
|
-
import AUProfileWidgetComponent from '
|
|
5
|
-
|
|
4
|
+
import AUProfileWidgetComponent from '../../../components/profile/AUProfileWidgetComponent';
|
|
5
|
+
|
|
6
|
+
// TODO: Re-implement portal context i staff portal and mitstudie
|
|
7
|
+
// before upgrading this lib-component!
|
|
8
|
+
const AUUserContextComponent = null;
|
|
6
9
|
|
|
7
10
|
const AUProfileAvatar2016Component = ({
|
|
8
11
|
lang,
|
|
@@ -63,6 +66,7 @@ const AUProfileAvatar2016Component = ({
|
|
|
63
66
|
onLoad(userContext);
|
|
64
67
|
}}
|
|
65
68
|
handleError={(status, json) => {
|
|
69
|
+
// eslint-disable-next-line no-console
|
|
66
70
|
console.log(status, json);
|
|
67
71
|
}}
|
|
68
72
|
spinner={false}
|
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
import React from 'react';
|
|
7
7
|
import ReactDOM from 'react-dom';
|
|
8
8
|
import PropTypes from 'prop-types';
|
|
9
|
-
import AUCollapsibleComponent from '../AUCollapsibleComponent';
|
|
10
|
-
import AUProfileLoginComponent from '
|
|
9
|
+
import AUCollapsibleComponent from '../common/AUCollapsibleComponent';
|
|
10
|
+
import AUProfileLoginComponent from '../../../components/profile/AUProfileLoginComponent';
|
|
11
11
|
import AUProfileAvatar2016Component from '../profile/AUProfileAvatar2016Component';
|
|
12
|
-
import { getCookie, setCookie } from '
|
|
12
|
+
import { getCookie, setCookie } from '../../../lib/helpers';
|
|
13
13
|
|
|
14
14
|
const parseBurgerLinks = (elements) => {
|
|
15
15
|
const links = [];
|
|
@@ -94,6 +94,7 @@ class StaffTopComponent extends React.Component {
|
|
|
94
94
|
onLoad({ ...user, ...{ auId: json.auId } });
|
|
95
95
|
});
|
|
96
96
|
}).catch((err) => {
|
|
97
|
+
// eslint-disable-next-line no-console
|
|
97
98
|
console.log(err);
|
|
98
99
|
});
|
|
99
100
|
}
|
|
File without changes
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/* eslint-env browser */
|
|
2
2
|
import React, { useState } from 'react';
|
|
3
|
-
import
|
|
4
|
-
import { universeLabels, profileLabels } from '../../lib/i18n';
|
|
3
|
+
import { universeLabels, profileLabels } from '../../../lib/i18n';
|
|
5
4
|
import StaffTopComponent from './StaffTopComponent';
|
|
6
5
|
import StudentTopComponent from './StudentTopComponent';
|
|
7
6
|
|
|
@@ -26,9 +25,11 @@ const UniverseContainerComponent = () => {
|
|
|
26
25
|
lang={lang}
|
|
27
26
|
user={user}
|
|
28
27
|
promiseHandler={(callback) => {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
28
|
+
fetch(universeGlobalContentPath).then(
|
|
29
|
+
(promise) => promise.json(),
|
|
30
|
+
).then(
|
|
31
|
+
(data) => callback(data),
|
|
32
|
+
);
|
|
32
33
|
}}
|
|
33
34
|
onLoad={(context) => {
|
|
34
35
|
setUser(context);
|
|
@@ -45,9 +46,11 @@ const UniverseContainerComponent = () => {
|
|
|
45
46
|
lang={lang}
|
|
46
47
|
user={user}
|
|
47
48
|
promiseHandler={(callback) => {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
fetch(universeGlobalContentPath).then(
|
|
50
|
+
(promise) => promise.json(),
|
|
51
|
+
).then(
|
|
52
|
+
(data) => callback(data),
|
|
53
|
+
);
|
|
51
54
|
}}
|
|
52
55
|
universeLabels={universeLabels}
|
|
53
56
|
profileLabels={profileLabels}
|
|
@@ -89,9 +89,7 @@ class AUAlphabox {
|
|
|
89
89
|
const mountNode = document.querySelector(box.config.container);
|
|
90
90
|
const visible = mountNode && getComputedStyle(mountNode).visibility !== 'hidden';
|
|
91
91
|
if (visible) {
|
|
92
|
-
ReactDOM.render(
|
|
93
|
-
<AlphaBoxComponent box={box} />, mountNode,
|
|
94
|
-
);
|
|
92
|
+
ReactDOM.render(<AlphaBoxComponent box={box} />, mountNode);
|
|
95
93
|
box.loaded = true;
|
|
96
94
|
}
|
|
97
95
|
}
|
|
@@ -6,7 +6,6 @@
|
|
|
6
6
|
/* eslint-env browser */
|
|
7
7
|
import React from 'react';
|
|
8
8
|
import ReactDOM from 'react-dom';
|
|
9
|
-
import axios from 'axios';
|
|
10
9
|
import DataBoxComponent from '../components/databox/DataBoxComponent';
|
|
11
10
|
|
|
12
11
|
const defaultOptions = {
|
|
@@ -58,8 +57,8 @@ class AUDataboxParser {
|
|
|
58
57
|
const promises = [];
|
|
59
58
|
sourceArr.forEach((s) => {
|
|
60
59
|
promises.push(new Promise((resolve) => {
|
|
61
|
-
|
|
62
|
-
resolve(
|
|
60
|
+
fetch(s).then((promise) => promise.json()).then((data) => {
|
|
61
|
+
resolve(data);
|
|
63
62
|
});
|
|
64
63
|
}));
|
|
65
64
|
});
|
|
@@ -380,12 +379,10 @@ class AUDatabox {
|
|
|
380
379
|
box.config.stacked = true;
|
|
381
380
|
}
|
|
382
381
|
if (visible) {
|
|
383
|
-
ReactDOM.render(
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
/>, mountNode,
|
|
388
|
-
);
|
|
382
|
+
ReactDOM.render(<DataBoxComponent
|
|
383
|
+
box={box}
|
|
384
|
+
parse={parser[box.data.mode]}
|
|
385
|
+
/>, mountNode);
|
|
389
386
|
box.loaded = true;
|
|
390
387
|
}
|
|
391
388
|
|
|
@@ -4,8 +4,7 @@
|
|
|
4
4
|
/* eslint-env browser */
|
|
5
5
|
import React from 'react';
|
|
6
6
|
import ReactDOM from 'react-dom';
|
|
7
|
-
import
|
|
8
|
-
import AUDiagrammeComponent from '../components/AUDiagrammeComponent';
|
|
7
|
+
import AUDiagrammeComponent from '../components/diagramme/AUDiagrammeComponent';
|
|
9
8
|
|
|
10
9
|
const defaultOptions = {
|
|
11
10
|
config: {
|
|
@@ -64,8 +63,7 @@ class AUDiagramme {
|
|
|
64
63
|
table.id = i;
|
|
65
64
|
AUDiagramme.mergeOptions(table);
|
|
66
65
|
const url = `https://eddiprod.au.dk/EDDI/webservices/StudieoversigtService2.cfc?method=getLinjeListByDokordningId&tjekForVisningIstudieDiagram=true&allowOrigin=true&dokordningId=${table.config.courseID}`;
|
|
67
|
-
|
|
68
|
-
const { data } = promise;
|
|
66
|
+
fetch(url).then((promise) => promise.json()).then((data) => {
|
|
69
67
|
const mountNode = document.querySelector(table.config.container);
|
|
70
68
|
if (mountNode) {
|
|
71
69
|
ReactDOM.render(
|
|
@@ -85,9 +85,7 @@ class AUFlowbox {
|
|
|
85
85
|
};
|
|
86
86
|
AUFlowbox.parse(box);
|
|
87
87
|
const mountNode = document.querySelector(box.config.container);
|
|
88
|
-
ReactDOM.render(
|
|
89
|
-
<FlowBoxComponent box={box} lang={this.lang} />, mountNode,
|
|
90
|
-
);
|
|
88
|
+
ReactDOM.render(<FlowBoxComponent box={box} lang={this.lang} />, mountNode);
|
|
91
89
|
}
|
|
92
90
|
}
|
|
93
91
|
}
|
|
File without changes
|