@capillarytech/creatives-library 3.0.9 → 3.0.12
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/containers/Cap/actions.js +6 -0
- package/containers/Cap/constants.js +1 -0
- package/containers/Cap/reducer.js +2 -0
- package/containers/MobilePush/Create/index.js +1 -0
- package/containers/Sms/Edit/index.js +2 -1
- package/package.json +1 -1
- package/utils/v2common.js +0 -0
- package/v2Containers/Assets/Gallery/index.js +18 -9
- package/v2Containers/Assets/Gallery/messages.js +4 -0
- package/v2Containers/Assets/images/calltaskIllustration.svg +1 -0
- package/v2Containers/Assets/images/emailIllustration.svg +1 -0
- package/v2Containers/Assets/images/imageGalleryIllustration.svg +1 -0
- package/v2Containers/Assets/images/pushIllustration.svg +1 -0
- package/v2Containers/Assets/images/smsIllustration.svg +1 -0
- package/v2Containers/Assets/images/wechatIllustration.svg +1 -0
- package/v2Containers/CallTask/index.js +14 -6
- package/v2Containers/CallTask/messages.js +8 -0
- package/v2Containers/Sms/Edit/index.js +2 -1
- package/v2Containers/Templates/index.js +83 -44
- package/v2Containers/Templates/messages.js +24 -0
- package/v2Components/DateFilter/index.js +0 -349
- package/v2Components/DateFilter/messages.js +0 -17
- package/v2Components/DateFilter/tests/index.test.js +0 -15
- package/v2Components/DateRange/index.js +0 -113
- package/v2Components/DateRange/messages.js +0 -13
- package/v2Components/DateRange/tests/index.test.js +0 -10
- package/v2Components/PageHeader/_pageHeader.scss +0 -22
- package/v2Components/PageHeader/index.js +0 -37
- package/v2Components/PageHeader/messages.js +0 -13
- package/v2Components/PageHeader/tests/index.test.js +0 -10
- package/v2Components/Sidebar/_sidebar.scss +0 -115
- package/v2Components/Sidebar/index.js +0 -208
- package/v2Components/Sidebar/messages.js +0 -21
- package/v2Components/Sidebar/tests/index.test.js +0 -10
- package/v2Components/SmsEditor/index.js +0 -55
- package/v2Components/SmsEditor/tests/index.test.js +0 -10
- package/v2Components/TopBar/_topbar.scss +0 -46
|
@@ -1,349 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
* DateFilter
|
|
4
|
-
*
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import PropTypes from 'prop-types';
|
|
8
|
-
|
|
9
|
-
import React from 'react';
|
|
10
|
-
// import styled from 'styled-components';
|
|
11
|
-
|
|
12
|
-
import { FormattedMessage } from 'react-intl';
|
|
13
|
-
import { Popup, Input, Button, Grid, Checkbox, Dimmer, Loader } from 'semantic-ui-react';
|
|
14
|
-
import DateRange from 'components/DateRange';
|
|
15
|
-
import moment from 'moment';
|
|
16
|
-
import _ from 'lodash';
|
|
17
|
-
import messages from './messages';
|
|
18
|
-
|
|
19
|
-
class DateFilter extends React.Component { // eslint-disable-line react/prefer-stateless-function
|
|
20
|
-
constructor(props) {
|
|
21
|
-
super(props);
|
|
22
|
-
this.state = {
|
|
23
|
-
selectedDateRange: this.props.selectedDateRange,
|
|
24
|
-
showChartCompareOptions: this.props.isCompareSelected,
|
|
25
|
-
compareDateRange: this.props.compareDateRange,
|
|
26
|
-
selectedDateText: '',
|
|
27
|
-
isDateSelectorOpen: false,
|
|
28
|
-
loading: this.props.loading,
|
|
29
|
-
openCustomDatePicker: false,
|
|
30
|
-
compareCustomDateSelected: false,
|
|
31
|
-
customDateSelected: false,
|
|
32
|
-
pastStateData: {},
|
|
33
|
-
componentWidth: 270,
|
|
34
|
-
};
|
|
35
|
-
this.handleToggleDateSelector = this.handleToggleDateSelector.bind(this);
|
|
36
|
-
this.renderDateSelector = this.renderDateSelector.bind(this);
|
|
37
|
-
this.handleDateTypeClick = this.handleDateTypeClick.bind(this);
|
|
38
|
-
this.printSelectedDate = this.printSelectedDate.bind(this);
|
|
39
|
-
this.handleCancel = this.handleCancel.bind(this);
|
|
40
|
-
this.handleChartCompareToggle = this.handleChartCompareToggle.bind(this);
|
|
41
|
-
this.handleCompareDateChange = this.handleCompareDateChange.bind(this);
|
|
42
|
-
this.handleCustomDatePickerCancel = this.handleCustomDatePickerCancel.bind(this);
|
|
43
|
-
this.handleDatePickerApply = this.handleDatePickerApply.bind(this);
|
|
44
|
-
this.compareDateValueSetting = this.compareDateValueSetting.bind(this);
|
|
45
|
-
this.handleApply = this.handleApply.bind(this);
|
|
46
|
-
this.restoreInitialState = this.restoreInitialState.bind(this);
|
|
47
|
-
this.storeInitialState = this.storeInitialState.bind(this);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
componentWillMount() {
|
|
51
|
-
const dateText = this.printSelectedDate(this.state.selectedDateRange.startDate, this.state.selectedDateRange.endDate, this.state.selectedDateRange.dateType);
|
|
52
|
-
this.setState({ selectedDateText: dateText });
|
|
53
|
-
this.setState({ loading: false });
|
|
54
|
-
this.storeInitialState();
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
componentDidMount() {
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
componentWillReceiveProps(nextProp) {
|
|
61
|
-
this.setState({ selectedDateRange: nextProp.selectedDateRange, showChartCompareOptions: nextProp.isCompareSelected }, () => {
|
|
62
|
-
let dateText = this.printSelectedDate(this.state.selectedDateRange.startDate, this.state.selectedDateRange.endDate, this.state.selectedDateRange.dateType);
|
|
63
|
-
if (this.state.showChartCompareOptions) {
|
|
64
|
-
this.setState({ componentWidth: 450 });
|
|
65
|
-
dateText = `${dateText} vs ${this.printSelectedDate(this.state.compareDateRange.startDate, this.state.compareDateRange.endDate, this.state.compareDateRange.dateType, true)}`;
|
|
66
|
-
} else {
|
|
67
|
-
this.setState({ componentWidth: 270 });
|
|
68
|
-
}
|
|
69
|
-
this.setState({ selectedDateText: dateText });
|
|
70
|
-
});
|
|
71
|
-
this.storeInitialState();
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
storeInitialState() {
|
|
75
|
-
const stateData = _.cloneDeep(this.state);
|
|
76
|
-
const tmpState = {
|
|
77
|
-
selectedDateRange: stateData.selectedDateRange,
|
|
78
|
-
showChartCompareOptions: stateData.showChartCompareOptions,
|
|
79
|
-
compareDateRange: stateData.compareDateRange,
|
|
80
|
-
};
|
|
81
|
-
this.setState({ pastStateData: tmpState });
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
handleToggleDateSelector() {
|
|
85
|
-
this.setState({ isDateSelectorOpen: !this.state.isDateSelectorOpen });
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
handleDateTypeClick(specifier) {
|
|
89
|
-
const date = this.state.selectedDateRange;
|
|
90
|
-
if (specifier !== 'custom') {
|
|
91
|
-
date.dateType = specifier;
|
|
92
|
-
if (specifier === 'week') {
|
|
93
|
-
date.startDate = moment().isoWeekday(1);
|
|
94
|
-
} else {
|
|
95
|
-
date.startDate = moment().startOf(specifier);
|
|
96
|
-
}
|
|
97
|
-
date.endDate = moment();
|
|
98
|
-
this.setState({ selectedDateRange: date }, () => {
|
|
99
|
-
if (this.state.showChartCompareOptions) {
|
|
100
|
-
this.compareDateValueSetting(specifier);
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
} else {
|
|
104
|
-
this.setState({ customDateSelected: true, openCustomDatePicker: true });
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
printSelectedDate(startDate, endDate, specifier, isCompare) {
|
|
109
|
-
let specifierType = '';
|
|
110
|
-
if (isCompare) {
|
|
111
|
-
if (specifier === 'week') {
|
|
112
|
-
specifierType = 'Previous Week';
|
|
113
|
-
} else if (specifier === 'month') {
|
|
114
|
-
specifierType = 'Previous Month';
|
|
115
|
-
} else if (specifier === 'year') {
|
|
116
|
-
specifierType = 'Previous Year';
|
|
117
|
-
} else {
|
|
118
|
-
specifierType = 'Custom';
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
if (!isCompare) {
|
|
122
|
-
if (specifier === 'week') {
|
|
123
|
-
specifierType = 'WTD';
|
|
124
|
-
} else if (specifier === 'month') {
|
|
125
|
-
specifierType = 'MTD';
|
|
126
|
-
} else if (specifier === 'year') {
|
|
127
|
-
specifierType = 'YTD';
|
|
128
|
-
} else {
|
|
129
|
-
specifierType = 'Custom';
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
let tmpDateString = '';
|
|
134
|
-
if (moment(startDate).year() === moment(endDate).year()) {
|
|
135
|
-
tmpDateString = `${specifierType} ( ${moment(startDate).format('MMM D').toString()} - ${moment(endDate).format('MMM D YYYY').toString()} )`;
|
|
136
|
-
} else {
|
|
137
|
-
tmpDateString = `${specifierType} ( ${moment(startDate).format('MMM D YYYY').toString()} - ${moment(endDate).format('MMM D YYYY').toString()} )`;
|
|
138
|
-
}
|
|
139
|
-
return tmpDateString;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
handleCancel() {
|
|
143
|
-
this.setState({ isDateSelectorOpen: false });
|
|
144
|
-
if (this.props.handleCancel !== undefined) {
|
|
145
|
-
this.props.handleCancel();
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
// Need to improve this function
|
|
149
|
-
this.restoreInitialState();
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
compareDateValueSetting(specifier) {
|
|
153
|
-
const dateRange = (this.state.compareDateRange) ? this.state.compareDateRange : _.cloneDeep(this.state.selectedDateRange);
|
|
154
|
-
if (specifier === 'week') {
|
|
155
|
-
dateRange.startDate = moment(this.state.selectedDateRange.startDate).subtract(7, 'days');
|
|
156
|
-
dateRange.endDate = moment(this.state.selectedDateRange.endDate).subtract(7, 'days');
|
|
157
|
-
dateRange.dateType = specifier;
|
|
158
|
-
} else if (specifier === 'month') {
|
|
159
|
-
dateRange.startDate = moment(this.state.selectedDateRange.startDate).subtract(1, 'months');
|
|
160
|
-
dateRange.endDate = moment(this.state.selectedDateRange.endDate).subtract(1, 'months');
|
|
161
|
-
dateRange.dateType = specifier;
|
|
162
|
-
} else if (specifier === 'year' || specifier === 'custom') {
|
|
163
|
-
dateRange.startDate = moment(this.state.selectedDateRange.startDate).subtract(1, 'years');
|
|
164
|
-
dateRange.endDate = moment(this.state.selectedDateRange.endDate).subtract(1, 'years');
|
|
165
|
-
dateRange.dateType = specifier;
|
|
166
|
-
}
|
|
167
|
-
this.setState({ compareDateRange: dateRange });
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
handleChartCompareToggle() {
|
|
171
|
-
this.setState({ showChartCompareOptions: !this.state.showChartCompareOptions });
|
|
172
|
-
const compareDateType = (this.state.compareDateRange) ? this.state.compareDateRange.dateType : this.state.selectedDateRange.dateType;
|
|
173
|
-
this.compareDateValueSetting(compareDateType);
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
handleCompareDateChange(specifier) {
|
|
177
|
-
if (specifier === 'custom') {
|
|
178
|
-
this.setState({ compareCustomDateSelected: true, openCustomDatePicker: true });
|
|
179
|
-
} else {
|
|
180
|
-
this.compareDateValueSetting(specifier);
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
handleCustomDatePickerCancel(e) {
|
|
185
|
-
if (e) {
|
|
186
|
-
e.preventDefault();
|
|
187
|
-
}
|
|
188
|
-
this.setState({ customDateSelected: false });
|
|
189
|
-
this.setState({ compareCustomDateSelected: false });
|
|
190
|
-
this.setState({ openCustomDatePicker: false });
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
handleDatePickerApply(startDate, endDate, dateType) {
|
|
194
|
-
if (this.state.customDateSelected) {
|
|
195
|
-
const dateRange = _.cloneDeep(this.state.selectedDateRange);
|
|
196
|
-
dateRange.startDate = startDate;
|
|
197
|
-
dateRange.endDate = endDate;
|
|
198
|
-
dateRange.dateType = dateType;
|
|
199
|
-
this.setState({ selectedDateRange: dateRange });
|
|
200
|
-
this.setState({ customDateSelected: false });
|
|
201
|
-
} else {
|
|
202
|
-
const dateRange = _.cloneDeep(this.state.compareDateRange);
|
|
203
|
-
dateRange.startDate = startDate;
|
|
204
|
-
dateRange.endDate = endDate;
|
|
205
|
-
dateRange.dateType = dateType;
|
|
206
|
-
this.setState({ compareDateRange: dateRange });
|
|
207
|
-
this.setState({ compareCustomDateSelected: false });
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
handleApply() {
|
|
212
|
-
let dateText = this.printSelectedDate(this.state.selectedDateRange.startDate, this.state.selectedDateRange.endDate, this.state.selectedDateRange.dateType);
|
|
213
|
-
if (this.state.showChartCompareOptions) {
|
|
214
|
-
this.setState({ componentWidth: 450 });
|
|
215
|
-
dateText = `${dateText} vs ${this.printSelectedDate(this.state.compareDateRange.startDate, this.state.compareDateRange.endDate, this.state.compareDateRange.dateType, true)}`;
|
|
216
|
-
} else {
|
|
217
|
-
this.setState({ componentWidth: 270 });
|
|
218
|
-
}
|
|
219
|
-
this.setState({ selectedDateText: dateText });
|
|
220
|
-
this.setState({ isDateSelectorOpen: false });
|
|
221
|
-
this.props.handleApply(this.state.selectedDateRange, this.state.showChartCompareOptions, this.state.compareDateRange);
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
restoreInitialState() {
|
|
225
|
-
this.setState({ selectedDateRange: this.state.pastStateData.selectedDateRange });
|
|
226
|
-
this.setState({ compareDateRange: this.state.pastStateData.compareDateRange, showChartCompareOptions: this.state.pastStateData.showChartCompareOptions });
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
renderDateSelector() {
|
|
230
|
-
const dateType = this.state.selectedDateRange.dateType;
|
|
231
|
-
return (
|
|
232
|
-
<div className="date-filter-wrapper">
|
|
233
|
-
{ this.state.loading ? <Dimmer active inverted className={'hide'}><Loader inverted><FormattedMessage {...messages.loaderMessage} /> </Loader></Dimmer> :
|
|
234
|
-
<Grid>
|
|
235
|
-
<Grid.Row className={this.state.openCustomDatePicker ? 'hide' : ''}>
|
|
236
|
-
<Grid.Column width={16}>
|
|
237
|
-
<Button.Group fluid className="btn-group till-date">
|
|
238
|
-
<Button className={dateType === 'week' ? 'active' : ''} onClick={() => this.handleDateTypeClick('week')}>WTD</Button>
|
|
239
|
-
<Button className={dateType === 'month' ? 'active' : ''} onClick={() => this.handleDateTypeClick('month')}>MTD</Button>
|
|
240
|
-
<Button className={dateType === 'year' ? 'active' : ''} onClick={() => this.handleDateTypeClick('year')}>YTD</Button>
|
|
241
|
-
<Button className={dateType === 'custom' ? 'active' : ''} onClick={() => this.handleDateTypeClick('custom')}>Custom</Button>
|
|
242
|
-
</Button.Group>
|
|
243
|
-
</Grid.Column>
|
|
244
|
-
<Grid.Column width={16} className="selectedDateText">
|
|
245
|
-
{this.printSelectedDate(this.state.selectedDateRange.startDate, this.state.selectedDateRange.endDate, this.state.selectedDateRange.dateType)}
|
|
246
|
-
{dateType === 'custom' ? <span className="editSelectedDate" onClick={() => this.handleDateTypeClick('custom')}><FormattedMessage {...messages.editText} /></span> : ''}
|
|
247
|
-
</Grid.Column>
|
|
248
|
-
</Grid.Row>
|
|
249
|
-
<Grid.Row className={this.state.openCustomDatePicker ? 'hide' : 'compareDateToggle'}>
|
|
250
|
-
<Grid.Column width={16}>
|
|
251
|
-
<Checkbox className={!this.props.compareMode ? 'hide' : 'dateCompareCheckbox'} checked={this.state.showChartCompareOptions} label="Compare" onClick={this.handleChartCompareToggle} />
|
|
252
|
-
</Grid.Column>
|
|
253
|
-
</Grid.Row>
|
|
254
|
-
{ this.state.showChartCompareOptions ?
|
|
255
|
-
<Grid.Row className={!this.state.openCustomDatePicker ? '' : 'hide'}>
|
|
256
|
-
<Grid.Column width={16}>
|
|
257
|
-
<Button.Group fluid className="btn-group till-date">
|
|
258
|
-
{dateType !== 'week' ? '' :
|
|
259
|
-
<Button className={this.state.compareDateRange.dateType !== 'week' ? '' : 'active'} onClick={() => this.handleCompareDateChange('week')}>Previous Week</Button> }
|
|
260
|
-
{dateType !== 'month' ? '' :
|
|
261
|
-
<Button className={this.state.compareDateRange.dateType !== 'month' ? '' : 'active'} onClick={() => this.handleCompareDateChange('month')}>Previous Month</Button>}
|
|
262
|
-
<Button className={this.state.compareDateRange.dateType === 'year' ? 'active' : ''} onClick={() => this.handleCompareDateChange('year')}>Previous Year</Button>
|
|
263
|
-
<Button className={this.state.compareDateRange.dateType === 'custom' ? 'active' : ''} onClick={() => this.handleCompareDateChange('custom')}>Custom</Button>
|
|
264
|
-
</Button.Group>
|
|
265
|
-
</Grid.Column>
|
|
266
|
-
<Grid.Column width={16} className="selectedDateText">
|
|
267
|
-
{this.printSelectedDate(this.state.compareDateRange.startDate, this.state.compareDateRange.endDate, this.state.compareDateRange.dateType, true)}
|
|
268
|
-
{this.state.compareDateRange.dateType === 'custom' ? <span className="editSelectedDate" onClick={() => this.handleCompareDateChange('custom')}><FormattedMessage {...messages.editText} /></span> : ''}
|
|
269
|
-
</Grid.Column>
|
|
270
|
-
</Grid.Row>
|
|
271
|
-
: ''
|
|
272
|
-
}
|
|
273
|
-
<Grid.Row className={this.state.openCustomDatePicker ? 'hide' : ''}>
|
|
274
|
-
<Grid.Column width={16}>
|
|
275
|
-
<Button primary onClick={this.handleApply}>Apply</Button>
|
|
276
|
-
<Button basic onClick={this.handleCancel}>Cancel</Button>
|
|
277
|
-
</Grid.Column>
|
|
278
|
-
</Grid.Row>
|
|
279
|
-
|
|
280
|
-
{ this.state.customDateSelected ?
|
|
281
|
-
<Grid.Row className={!this.state.openCustomDatePicker ? 'hide' : ''}>
|
|
282
|
-
<Grid.Column className="selectDateRangeTitle" width={16}>
|
|
283
|
-
<a href="" className="backButton" onClick={this.handleCustomDatePickerCancel}><i className="material-icons">keyboard_backspace</i></a>
|
|
284
|
-
<span className="dateRangeTitle">Select Date Range</span>
|
|
285
|
-
</Grid.Column>
|
|
286
|
-
<Grid.Column width={16} className="dateRangeWrapper">
|
|
287
|
-
<DateRange prevSelectedDate={this.state.selectedDateRange} handleDatePickerApply={this.handleDatePickerApply} handleDatePickerCancel={this.handleCustomDatePickerCancel} />
|
|
288
|
-
</Grid.Column>
|
|
289
|
-
{/* { this.state.showChartCompareOptions ? <Grid.Column width={16}>
|
|
290
|
-
{this.printSelectedDate(this.props.selectedDateRange.startDate, this.props.selectedDateRange.endDate, this.state.selectedDateRange.dateType)} vs
|
|
291
|
-
</Grid.Column> : '' } */}
|
|
292
|
-
</Grid.Row> : ''
|
|
293
|
-
}
|
|
294
|
-
|
|
295
|
-
{ this.state.compareCustomDateSelected ?
|
|
296
|
-
<Grid.Row className={!this.state.openCustomDatePicker ? 'hide' : ''}>
|
|
297
|
-
<Grid.Column width={16}>
|
|
298
|
-
<a href="" className="backButton" onClick={this.handleCustomDatePickerCancel}><i className="material-icons">keyboard_backspace</i></a>
|
|
299
|
-
<span className="dateRangeTitle">Select Date Range</span>
|
|
300
|
-
</Grid.Column>
|
|
301
|
-
<Grid.Column width={16}>
|
|
302
|
-
{this.printSelectedDate(this.state.selectedDateRange.startDate, this.state.selectedDateRange.endDate, this.state.selectedDateRange.dateType)} vs
|
|
303
|
-
</Grid.Column>
|
|
304
|
-
<Grid.Column width={16} className="dateRangeWrapper">
|
|
305
|
-
<DateRange prevSelectedDate={this.state.compareDateRange} handleDatePickerApply={this.handleDatePickerApply} handleDatePickerCancel={this.handleCustomDatePickerCancel} />
|
|
306
|
-
</Grid.Column>
|
|
307
|
-
</Grid.Row> : ''
|
|
308
|
-
}
|
|
309
|
-
</Grid>}
|
|
310
|
-
</div>
|
|
311
|
-
);
|
|
312
|
-
}
|
|
313
|
-
|
|
314
|
-
render() {
|
|
315
|
-
const { isDateSelectorOpen } = this.state;
|
|
316
|
-
// const loading = this.state.loading;
|
|
317
|
-
return (
|
|
318
|
-
<span>
|
|
319
|
-
<Popup
|
|
320
|
-
trigger={
|
|
321
|
-
<Input
|
|
322
|
-
id="compareDate"
|
|
323
|
-
style={{ width: `${this.state.componentWidth}px` }}
|
|
324
|
-
readOnly
|
|
325
|
-
icon="caret down"
|
|
326
|
-
value={this.state.selectedDateText}
|
|
327
|
-
/>
|
|
328
|
-
}
|
|
329
|
-
content={this.renderDateSelector()}
|
|
330
|
-
on="click"
|
|
331
|
-
open={isDateSelectorOpen}
|
|
332
|
-
onOpen={this.handleToggleDateSelector}
|
|
333
|
-
/>
|
|
334
|
-
</span>
|
|
335
|
-
);
|
|
336
|
-
}
|
|
337
|
-
}
|
|
338
|
-
|
|
339
|
-
DateFilter.propTypes = {
|
|
340
|
-
selectedDateRange: PropTypes.object.isRequired,
|
|
341
|
-
compareMode: PropTypes.bool,
|
|
342
|
-
compareDateRange: PropTypes.object,
|
|
343
|
-
isCompareSelected: PropTypes.bool,
|
|
344
|
-
handleApply: PropTypes.func.isRequired,
|
|
345
|
-
handleCancel: PropTypes.func,
|
|
346
|
-
loading: PropTypes.bool,
|
|
347
|
-
};
|
|
348
|
-
|
|
349
|
-
export default DateFilter;
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* DateFilter Messages
|
|
3
|
-
*
|
|
4
|
-
* This contains all the text for the DateFilter component.
|
|
5
|
-
*/
|
|
6
|
-
import { defineMessages } from 'react-intl';
|
|
7
|
-
|
|
8
|
-
export default defineMessages({
|
|
9
|
-
loaderMessage: {
|
|
10
|
-
id: 'reon.components.DateFilter.loaderMessage',
|
|
11
|
-
defaultMessage: 'Fetching Data',
|
|
12
|
-
},
|
|
13
|
-
editText: {
|
|
14
|
-
id: 'reon.components.DateFilter.editText',
|
|
15
|
-
defaultMessage: 'Edit',
|
|
16
|
-
},
|
|
17
|
-
});
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
// import React from 'react';
|
|
2
|
-
// import { shallow } from 'enzyme';
|
|
3
|
-
//
|
|
4
|
-
// import moment from 'moment';
|
|
5
|
-
// import DateFilter from '../index';
|
|
6
|
-
|
|
7
|
-
// describe('<DateFilter />', () => {
|
|
8
|
-
// it('Expect to have unit tests specified', () => {
|
|
9
|
-
// expect(true).toEqual(false);
|
|
10
|
-
// });
|
|
11
|
-
// it('Expect to have selectDateRange Prop', () => {
|
|
12
|
-
// const wrapper = shallow(<DateFilter selectedDateRange={moment()} />);
|
|
13
|
-
// expect(wrapper.props().selectedDateRange).toEqual(moment());
|
|
14
|
-
// });
|
|
15
|
-
// });
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
* DateRange
|
|
4
|
-
*
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import PropTypes from 'prop-types';
|
|
8
|
-
|
|
9
|
-
import React from 'react';
|
|
10
|
-
// import styled from 'styled-components';
|
|
11
|
-
|
|
12
|
-
import { FormattedMessage } from 'react-intl';
|
|
13
|
-
import { Grid, Button } from 'semantic-ui-react';
|
|
14
|
-
|
|
15
|
-
import DatePicker from 'react-datepicker';
|
|
16
|
-
import 'react-datepicker/dist/react-datepicker.css';
|
|
17
|
-
|
|
18
|
-
import moment from 'moment';
|
|
19
|
-
|
|
20
|
-
class DateRange extends React.Component { // eslint-disable-line react/prefer-stateless-function
|
|
21
|
-
constructor(props) {
|
|
22
|
-
super(props);
|
|
23
|
-
this.state = {
|
|
24
|
-
startDate: this.props.prevSelectedDate.startDate,
|
|
25
|
-
endDate: this.props.prevSelectedDate.endDate,
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
this.handleChangeStart = this.handleChangeStart.bind(this);
|
|
29
|
-
this.handleChangeEnd = this.handleChangeEnd.bind(this);
|
|
30
|
-
this.closeAndUpdate = this.closeAndUpdate.bind(this);
|
|
31
|
-
this.closeAndCancel = this.closeAndCancel.bind(this);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
handleChangeStart(date) {
|
|
35
|
-
this.setState({ startDate: date });
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
handleChangeEnd(date) {
|
|
39
|
-
this.setState({ endDate: date });
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
closeAndUpdate() {
|
|
43
|
-
this.props.handleDatePickerApply(this.state.startDate, this.state.endDate, 'custom');
|
|
44
|
-
this.props.handleDatePickerCancel();
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
closeAndCancel() {
|
|
48
|
-
this.props.handleDatePickerCancel();
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
render() {
|
|
52
|
-
const { startDate, endDate } = this.state;
|
|
53
|
-
|
|
54
|
-
return (
|
|
55
|
-
<Grid className="dateRangeWrapper" columns={2}>
|
|
56
|
-
<Grid.Row className="selectedDateTitleWrapper">
|
|
57
|
-
<Grid.Column style={{ paddingLeft: 0, paddingBottom: `${8}px` }}>
|
|
58
|
-
<span className="selectedDateTitle">From</span>
|
|
59
|
-
<input className="selectedDateRange" type="text" readOnly defaultValue={moment(startDate).format('MM/DD/YYYY').toString()} />
|
|
60
|
-
<i className="calenderIcon material-icons">today</i>
|
|
61
|
-
</Grid.Column>
|
|
62
|
-
<Grid.Column style={{ paddingLeft: 0 }}>
|
|
63
|
-
<span className="selectedDateTitle">To</span>
|
|
64
|
-
<input className="selectedDateRange" readOnly type="text" defaultValue={moment(endDate).format('MM/DD/YYYY').toString()} />
|
|
65
|
-
<i className="calenderIcon material-icons">today</i>
|
|
66
|
-
</Grid.Column>
|
|
67
|
-
</Grid.Row>
|
|
68
|
-
<Grid.Row style={{ paddingTop: 0, paddingBottom: `${2}px` }}>
|
|
69
|
-
<Grid.Column style={{ paddingLeft: 0 }}>
|
|
70
|
-
<DatePicker
|
|
71
|
-
inline
|
|
72
|
-
selected={startDate}
|
|
73
|
-
startDate={startDate}
|
|
74
|
-
endDate={endDate}
|
|
75
|
-
onChange={this.handleChangeStart}
|
|
76
|
-
showMonthDropdown
|
|
77
|
-
showYearDropdown
|
|
78
|
-
dropdownMode="select"
|
|
79
|
-
/>
|
|
80
|
-
</Grid.Column>
|
|
81
|
-
<Grid.Column style={{ paddingLeft: 0 }}>
|
|
82
|
-
<DatePicker
|
|
83
|
-
inline
|
|
84
|
-
selected={endDate}
|
|
85
|
-
startDate={startDate}
|
|
86
|
-
endDate={endDate}
|
|
87
|
-
minDate={startDate}
|
|
88
|
-
maxDate={moment()}
|
|
89
|
-
onChange={this.handleChangeEnd}
|
|
90
|
-
showMonthDropdown
|
|
91
|
-
showYearDropdown
|
|
92
|
-
dropdownMode="select"
|
|
93
|
-
/>
|
|
94
|
-
</Grid.Column>
|
|
95
|
-
</Grid.Row>
|
|
96
|
-
<Grid.Row>
|
|
97
|
-
<Grid.Column width={16} style={{ paddingLeft: 0 }}>
|
|
98
|
-
<Button onClick={this.closeAndUpdate} className="btn-primary" floated="left"><FormattedMessage id="customdatepicker.done" defaultMessage="Done" /></Button>
|
|
99
|
-
<Button onClick={this.closeAndCancel} className="btn-secondary" floated="left"><FormattedMessage id="customdatepicker.cancel" defaultMessage="Cancel" /></Button>
|
|
100
|
-
</Grid.Column>
|
|
101
|
-
</Grid.Row>
|
|
102
|
-
</Grid>
|
|
103
|
-
);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
DateRange.propTypes = {
|
|
108
|
-
prevSelectedDate: PropTypes.object.isRequired,
|
|
109
|
-
handleDatePickerCancel: PropTypes.func,
|
|
110
|
-
handleDatePickerApply: PropTypes.func,
|
|
111
|
-
};
|
|
112
|
-
|
|
113
|
-
export default DateRange;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* DateRange Messages
|
|
3
|
-
*
|
|
4
|
-
* This contains all the text for the DateRange component.
|
|
5
|
-
*/
|
|
6
|
-
import { defineMessages } from 'react-intl';
|
|
7
|
-
|
|
8
|
-
export default defineMessages({
|
|
9
|
-
header: {
|
|
10
|
-
id: 'app.components.DateRange.header',
|
|
11
|
-
defaultMessage: 'This is the DateRange component !',
|
|
12
|
-
},
|
|
13
|
-
});
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
.pageHeader{
|
|
2
|
-
.pageHeader-wrapper{
|
|
3
|
-
padding-top: 8px;
|
|
4
|
-
padding-bottom: 8px;
|
|
5
|
-
|
|
6
|
-
.title-container {
|
|
7
|
-
padding-left: 0px !important;
|
|
8
|
-
|
|
9
|
-
.title {
|
|
10
|
-
font-size: 24px;
|
|
11
|
-
line-height: 32px;
|
|
12
|
-
color: #323B4E;
|
|
13
|
-
font-family: 'Proxima-Nova';
|
|
14
|
-
font-weight: 600;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
.action-buttons{
|
|
18
|
-
text-align: right;
|
|
19
|
-
padding-right: 0 !important;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import PropTypes from 'prop-types';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
// import styled from 'styled-components';
|
|
4
|
-
|
|
5
|
-
import { Grid } from 'semantic-ui-react';
|
|
6
|
-
import './_pageHeader.scss';
|
|
7
|
-
|
|
8
|
-
// import { FormattedMessage } from 'react-intl';
|
|
9
|
-
// import messages from './messages';
|
|
10
|
-
|
|
11
|
-
class PageHeader extends React.Component { // eslint-disable-line react/prefer-stateless-function
|
|
12
|
-
render() {
|
|
13
|
-
return (
|
|
14
|
-
<Grid className="pageHeader">
|
|
15
|
-
<Grid.Row className="pageHeader-wrapper">
|
|
16
|
-
<Grid.Column width={8} className="title-container">
|
|
17
|
-
<h2 className="title">{this.props.pageHeading}</h2>
|
|
18
|
-
</Grid.Column>
|
|
19
|
-
<Grid.Column className="action-buttons" width={8}>
|
|
20
|
-
{this.props.actionComponents}
|
|
21
|
-
</Grid.Column>
|
|
22
|
-
</Grid.Row>
|
|
23
|
-
</Grid>
|
|
24
|
-
);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
PageHeader.propTypes = {
|
|
29
|
-
// Need Formatted Message in pageHeading Props
|
|
30
|
-
pageHeading: PropTypes.oneOfType([
|
|
31
|
-
PropTypes.element,
|
|
32
|
-
PropTypes.string,
|
|
33
|
-
]),
|
|
34
|
-
actionComponents: PropTypes.element,
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
export default PageHeader;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* PageHeader Messages
|
|
3
|
-
*
|
|
4
|
-
* This contains all the text for the PageHeader component.
|
|
5
|
-
*/
|
|
6
|
-
import { defineMessages } from 'react-intl';
|
|
7
|
-
|
|
8
|
-
export default defineMessages({
|
|
9
|
-
header: {
|
|
10
|
-
id: 'app.components.PageHeader.header',
|
|
11
|
-
defaultMessage: 'This is the PageHeader component !',
|
|
12
|
-
},
|
|
13
|
-
});
|