Commit 79f8a83b by Chaiwith Santaweesuk

update

parent 0bf6e9e4
......@@ -10,6 +10,7 @@
"jquery": "^3.4.1",
"mapbox-gl": "^1.2.0",
"moment": "^2.24.0",
"moment-range": "^4.0.2",
"node-sass": "^4.12.0",
"prop-types": "^15.7.2",
"qs": "^6.7.0",
......
......@@ -269,71 +269,62 @@ class Home extends Component {
const breakdown = this.props.selectedFeed.breakdown;
for (let data_index = 0; data_index < data.length; data_index++) {
var allValues = [];
var multistation = false
for (let feed_index = 0; feed_index < data[data_index].length; feed_index++) {
allValues = allValues.concat(data[data_index][feed_index].value);
if (feed_index > 0) multistation = true;
}
var mapValues = [];
let mapValues = [];
for (let index = 0; index < allValues.length; index++) {
let key = allValues[index][0];
let timestamp = allValues[index][0].toString().substring(0, 8) + "00000";
if (breakdown == "minutes") {
key = moment(parseInt(allValues[index][0])).minutes(Math.round(moment(parseInt(allValues[index][0])).minutes() / 5) * 5);
timestamp = key.valueOf().toString().substring(0, 8) + "00000";
} else if (breakdown == "hours") {
key = moment(parseInt(allValues[index][0])).minutes(0);
timestamp = key.valueOf().toString().substring(0, 8) + "00000";
}
else if (breakdown == "days") {
key = moment(parseInt(allValues[index][0])).hours(1).minutes(0);
timestamp = key.valueOf().toString().substring(0, 8) + "00000";
key = moment(parseInt(allValues[index][0])).hours(8).minutes(0);
}
else if (breakdown == "weeks") {
key = moment(parseInt(allValues[index][0])).startOf('week').hours(1).minutes(0);
timestamp = key.valueOf().toString().substring(0, 8) + "00000";
}
else if (breakdown == "months") {
key = moment(parseInt(allValues[index][0])).startOf('month').hours(1).minutes(0);
timestamp = key.valueOf().toString().substring(0, 8) + "00000";
}
mapValues[timestamp] = [];
let isExist = null;
for (let i = 0; i < data[data_index].length; i++) {
if (breakdown == "minutes") {
isExist = data[data_index][i].value.find(element =>
(moment(element[0]).minutes(Math.round(moment(element[0]).minutes() / 5) * 5).valueOf().toString().substring(0, 8) + "00000" == timestamp)
);
} else if (breakdown == "hours") {
isExist = data[data_index][i].value.find(element =>
(moment(element[0]).minutes(0).valueOf().toString().substring(0, 8) + "00000" == timestamp)
);
} else if (breakdown == "days") {
isExist = data[data_index][i].value.find(element =>
(moment(element[0]).hours(1).minutes(0).valueOf().toString().substring(0, 8) + "00000" == timestamp)
);
const timestamp = key.valueOf().toString().substring(0, 8) + "00000";
if (Object.keys(mapValues).includes(timestamp)) {
if (multistation === false) {
if (data_index === 5) {
mapValues[timestamp][0] = allValues[index][1];
}
else if (breakdown == "weeks") {
isExist = data[data_index][i].value.find(element =>
(moment(element[0]).startOf('week').hours(1).minutes(0).valueOf().toString().substring(0, 8) + "00000" == timestamp)
);
else {
mapValues[timestamp][0] = mapValues[timestamp][0] + allValues[index][1];
}
else if (breakdown == "months") {
isExist = data[data_index][i].value.find(element =>
(moment(element[0]).startOf('month').hours(1).minutes(0).valueOf().toString().substring(0, 8) + "00000" == timestamp)
);
}
else {
isExist = data[data_index][i].value.find(element =>
(element[0].toString().substring(0, 8) + "00000" == timestamp)
);
let indexfeed = 0
if (index > allValues.length / 2) {
indexfeed = 1
}
if (data_index === 5) {
mapValues[timestamp][indexfeed] = allValues[index][1];
}
else {
if (mapValues[timestamp][indexfeed]) {
mapValues[timestamp][indexfeed] = mapValues[timestamp][indexfeed] + allValues[index][1];
}
else {
mapValues[timestamp][indexfeed] = allValues[index][1];
}
}
}
if (isExist) {
mapValues[timestamp].push(isExist[1]);
} else {
mapValues[timestamp].push(0);
if (multistation === false) {
mapValues[timestamp] = [allValues[index][1]];
}
else {
mapValues[timestamp] = [allValues[index][1]];
}
}
}
......
......@@ -43,55 +43,34 @@ const DataCard = props => {
}
var mapValues = [];
for (let index = 0; index < allValues.length; index++) {
// const timestamp = (allValues[index][0]).toString();
// const key = timestamp.substring(0, 8) + "00000";
// if (Object.keys(mapValues).includes(key)) {
// mapValues[key] += allValues[index][1];
let key = allValues[index][0];
// if (breakdown=="minutes") {
// key = moment(parseInt(allValues[index][0])).minutes(Math.round(moment(parseInt(allValues[index][0])).minutes() / 5) * 5);
// }
// else if (breakdown=="hours") {
// key = moment(parseInt(allValues[index][0])).minutes(Math.round(moment(parseInt(allValues[index][0])).minutes() / 60) * 60);
// }
// else if (breakdown=="days") {
// key = moment(parseInt(allValues[index][0])).hours(0).minutes(0);
// }
// else if (breakdown=="weeks") {
// key = moment(parseInt(allValues[index][0])).startOf('week').hours(0).minutes(0);
// }
// else if (breakdown=="months") {
// key = moment(parseInt(allValues[index][0])).startOf('month').hours(0).minutes(0);
// }
if (breakdown == "minutes") {
key = moment(parseInt(allValues[index][0])).minutes(Math.round(moment(parseInt(allValues[index][0])).minutes() / 5) * 5);
// timestamp = key.valueOf().toString().substring(0, 8) + "00000";
} else if (breakdown == "hours") {
key = moment(parseInt(allValues[index][0])).minutes(0);
// timestamp = key.valueOf().toString().substring(0, 8) + "00000";
}
else if (breakdown == "days") {
key = moment(parseInt(allValues[index][0])).hours(1).minutes(0);
// timestamp = key.valueOf().toString().substring(0, 8) + "00000";
key = moment(parseInt(allValues[index][0])).hours(8).minutes(0);
}
else if (breakdown == "weeks") {
key = moment(parseInt(allValues[index][0])).startOf('week').hours(1).minutes(0);
// timestamp = key.valueOf().toString().substring(0, 8) + "00000";
}
else if (breakdown == "months") {
key = moment(parseInt(allValues[index][0])).startOf('month').hours(1).minutes(0);
// timestamp = key.valueOf().toString().substring(0, 8) + "00000";
}
const timestamp = key.valueOf().toString().substring(0, 8) + "00000";
if (Object.keys(mapValues).includes(timestamp)) {
if (data.title === "Current chart") {
mapValues[timestamp] = allValues[index][1];
}
else {
mapValues[timestamp] += allValues[index][1];
}
} else {
mapValues[timestamp] = allValues[index][1];
}
}
Object.keys(mapValues).sort().map(key => {
dataObj.push({ xAxis: moment(parseInt(key)).format('D/M/YY HH:mm'), yAxis: mapValues[key] })
});
......
......@@ -4,6 +4,7 @@ import { CSVLink } from 'react-csv';
import { FaFileCsv } from 'react-icons/fa';
import ReactPaginate from 'react-paginate';
export default class DataTable extends Component {
state = {
data: [],
......@@ -90,10 +91,8 @@ export default class DataTable extends Component {
obj['current_total'] += value[i].current;
}
obj.timestamp = value[0].timestamp;
console.log(obj)
csvData.push(obj);
});
console.log(csvData)
}
if (this.props.size > 1) {
......
import axios from 'axios';
// import * as moment from 'moment';
// import { extendMoment } from 'moment-range';
export const GET_FEED_DATA = 'GET_FEED_DATA';
export const getFeedDataAction = ({
......@@ -22,9 +24,10 @@ export const getFeedData = () => async (dispatch, getState) => {
const { fireStoreReducer, selectedFeedReducer } = getState();
const { kairosUrl, userToken } = fireStoreReducer.fireStoreConfig;
const { devices, range, breakdown, location } = selectedFeedReducer.selectedFeed;
// let momentRange = extendMoment(moment);
let attrList;
let metrics = [];
devices.forEach(device => {
if (location == "eLNvYvm6YT8LTHrCA7Ne" || location == "fKtBvZyBArnTdlMRXOY0" || location == "yb1udKQSTGBFHKn1m5MQ" || location == "rJLbWBPZoJof30KCE07h" || location == "ZMfFDqiAJhXDqRVopTCT" || location == "hWHZMc1dbzjxDuNeIMYf" || location == "sfE95i3WDGy7W4k5pc9T" || location == "uX8Cq15AkjWgVXqWCbdf" || location == "yILqREcDQu85AD1wGyBP" || location == "1ppp1nJuBlNLOpl67dtZ") {
attrList = [
......@@ -66,7 +69,7 @@ export const getFeedData = () => async (dispatch, getState) => {
name: element.aggregator,
sampling: {
value: 1,
unit: breakdown,
unit: breakdown == "days" ? "hours" : breakdown
},
},
],
......@@ -79,6 +82,8 @@ export const getFeedData = () => async (dispatch, getState) => {
end_absolute: range.endDate,
metrics: metrics
};
// const rangeDate = momentRange.range(moment(range.startDate), moment(range.endDatend));
// console.log(Array.from(rangeDate.by('day')))
try {
// axios.defaults.headers.common['Authorization'] = `Bearer ${userToken}`;
// const response = await axios.post(kairosUrl, q_data);
......@@ -99,25 +104,7 @@ export const getFeedData = () => async (dispatch, getState) => {
if (location == "eLNvYvm6YT8LTHrCA7Ne" || location == "fKtBvZyBArnTdlMRXOY0" || location == "yb1udKQSTGBFHKn1m5MQ" || location == "rJLbWBPZoJof30KCE07h" || location == "ZMfFDqiAJhXDqRVopTCT" || location == "hWHZMc1dbzjxDuNeIMYf" || location == "sfE95i3WDGy7W4k5pc9T" || location == "uX8Cq15AkjWgVXqWCbdf" || location == "yILqREcDQu85AD1wGyBP" || location == "1ppp1nJuBlNLOpl67dtZ") {
if (query.results[0].tags.attr == "['Current Cash']") {
currentFeedList.push({ deviceId: query.results[0].name, value: query.results[0].values });
let revenueFeed = { deviceId: query.results[0].name, value: [] }
// for (let index = 1; index < query.results[0].values.length; index++) {
// const current = query.results[0].values[index][1];
// const before = query.results[0].values[index - 1][1];
// // if (current - before >= 0) {
// // revenueFeed.value[revenueFeed.value.length] = [query.results[0].values[index][0], current - before]
// // }
// if (current - before < 0) {
// // revenueFeed.value[revenueFeed.value.length] = [query.results[0].values[index][0], current]
// // currentFeedList[0].value[index - 1] = before
// // currentFeedList[0].value[index] = 0
// currentFeedList[0].value[index - 1] = [currentFeedList[0].value[index - 1][0], 0]
// currentFeedList[0].value[index - 2] = [currentFeedList[0].value[index - 2][0], before]
// }
// // if (index == query.results[0].values.length - 1) {
// // revenueFeedList.push(revenueFeed);
// // }
// }
let revenueFeed = { deviceId: query.results[0].name, value: [[query.results[0].values[0][0], 0]] }
for (let index = 1; index < query.results[0].values.length; index++) {
const current = query.results[0].values[index][1];
const before = query.results[0].values[index - 1][1];
......@@ -133,8 +120,7 @@ export const getFeedData = () => async (dispatch, getState) => {
}
}
else if (query.results[0].tags.attr == "Remote") {
// remoteFeedList.push({ deviceId: query.results[0].name, value: query.results[0].values });
let remoteFeed = { deviceId: query.results[0].name, value: [] }
let remoteFeed = { deviceId: query.results[0].name, value: [[query.results[0].values[0][0], 0]] }
for (let index = 1; index < query.results[0].values.length; index++) {
const current = query.results[0].values[index][1];
const before = query.results[0].values[index - 1][1];
......@@ -150,8 +136,7 @@ export const getFeedData = () => async (dispatch, getState) => {
}
}
else if (query.results[0].tags.attr == "People") {
// peopleFeedList.push({ deviceId: query.results[0].name, value: query.results[0].values });
let peopleFeed = { deviceId: query.results[0].name, value: [] }
let peopleFeed = { deviceId: query.results[0].name, value: [[query.results[0].values[0][0], 0]] }
for (let index = 1; index < query.results[0].values.length; index++) {
const current = query.results[0].values[index][1];
const before = query.results[0].values[index - 1][1];
......@@ -167,8 +152,7 @@ export const getFeedData = () => async (dispatch, getState) => {
}
}
else if (query.results[0].tags.attr == "Fingerprint") {
// fingerPrintFeedList.push({ deviceId: query.results[0].name, value: query.results[0].values });
let fingerPrintFeed = { deviceId: query.results[0].name, value: [] }
let fingerPrintFeed = { deviceId: query.results[0].name, value: [[query.results[0].values[0][0], 0]] }
for (let index = 1; index < query.results[0].values.length; index++) {
const current = query.results[0].values[index][1];
const before = query.results[0].values[index - 1][1];
......@@ -184,8 +168,7 @@ export const getFeedData = () => async (dispatch, getState) => {
}
}
else if (query.results[0].tags.attr == "Keycard") {
// keycardFeedList.push({ deviceId: query.results[0].name, value: query.results[0].values });
let keycardFeed = { deviceId: query.results[0].name, value: [] }
let keycardFeed = { deviceId: query.results[0].name, value: [[query.results[0].values[0][0], 0]] }
for (let index = 1; index < query.results[0].values.length; index++) {
const current = query.results[0].values[index][1];
const before = query.results[0].values[index - 1][1];
......
......@@ -3695,6 +3695,14 @@ d3-time@1:
resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-1.0.11.tgz#1d831a3e25cd189eb256c17770a666368762bbce"
integrity sha512-Z3wpvhPLW4vEScGeIMUckDW7+3hWKOQfAWg/U7PlWBnQmeKQ00gCUsTtWSYulrKNA7ta8hJ+xXc6MHrMuITwEw==
d@1, d@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a"
integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==
dependencies:
es5-ext "^0.10.50"
type "^1.0.1"
damerau-levenshtein@^1.0.4:
version "1.0.5"
resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.5.tgz#780cf7144eb2e8dbd1c3bb83ae31100ccc31a414"
......@@ -4178,6 +4186,32 @@ es-to-primitive@^1.2.0:
is-date-object "^1.0.1"
is-symbol "^1.0.2"
es5-ext@^0.10.35, es5-ext@^0.10.50:
version "0.10.53"
resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1"
integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==
dependencies:
es6-iterator "~2.0.3"
es6-symbol "~3.1.3"
next-tick "~1.0.0"
es6-iterator@~2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7"
integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c=
dependencies:
d "1"
es5-ext "^0.10.35"
es6-symbol "^3.1.1"
es6-symbol@^3.1.0, es6-symbol@^3.1.1, es6-symbol@~3.1.3:
version "3.1.3"
resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18"
integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==
dependencies:
d "^1.0.1"
ext "^1.1.2"
escape-html@~1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
......@@ -4526,6 +4560,13 @@ express@^4.16.2:
utils-merge "1.0.1"
vary "~1.1.2"
ext@^1.1.2:
version "1.4.0"
resolved "https://registry.yarnpkg.com/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244"
integrity sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==
dependencies:
type "^2.0.0"
extend-shallow@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
......@@ -7248,6 +7289,13 @@ mkdirp@0.5.1, mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdi
dependencies:
minimist "0.0.8"
moment-range@^4.0.2:
version "4.0.2"
resolved "https://registry.yarnpkg.com/moment-range/-/moment-range-4.0.2.tgz#f7c3863df2a1ed7fd1822ba5a7bcf53a78701be9"
integrity sha512-n8sceWwSTjmz++nFHzeNEUsYtDqjgXgcOBzsHi+BoXQU2FW+eU92LUaK8gqOiSu5PG57Q9sYj1Fz4LRDj4FtKA==
dependencies:
es6-symbol "^3.1.0"
moment@^2.24.0, moment@^2.9.0:
version "2.24.0"
resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b"
......@@ -7349,6 +7397,11 @@ neo-async@^2.5.0, neo-async@^2.6.0:
resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c"
integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==
next-tick@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c"
integrity sha1-yobR/ogoFpsBICCOPchCS524NCw=
nice-try@^1.0.4:
version "1.0.5"
resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
......@@ -10952,6 +11005,16 @@ type-is@~1.6.17, type-is@~1.6.18:
media-typer "0.3.0"
mime-types "~2.1.24"
type@^1.0.1:
version "1.2.0"
resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0"
integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==
type@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/type/-/type-2.0.0.tgz#5f16ff6ef2eb44f260494dae271033b29c09a9c3"
integrity sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow==
typed-styles@^0.0.5:
version "0.0.5"
resolved "https://registry.yarnpkg.com/typed-styles/-/typed-styles-0.0.5.tgz#a60df245d482a9b1adf9c06c078d0f06085ed1cf"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment