From bf282de9aa7269471c8961531c3019265da1afd2 Mon Sep 17 00:00:00 2001 From: XuTheBunny Date: Wed, 26 Jan 2022 02:12:06 -0500 Subject: [PATCH] =?UTF-8?q?=F0=9F=91=A9=F0=9F=8F=BB=E2=80=8D=F0=9F=92=BB?= =?UTF-8?q?=20WORKING=20IN=20PROGRESS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 + src/App.css | 16 + src/assets/s3.png | Bin 0 -> 39184 bytes src/common/dateUtils.js | 35 +- src/common/enums.js | 1 + src/components/Header/Header.js | 6 + src/documents/utilities.js | 3 +- src/routes/index.js | 2 + src/s3Accounting/components/ComparisonTab.js | 381 ++++++++++++++++++ .../components/FileUploadTable.js | 200 +++++++++ src/s3Accounting/components/FileUploadsTab.js | 216 ++++++++++ src/s3Accounting/components/S3InventoryTab.js | 215 ++++++++++ src/s3Accounting/fragments.js | 17 + src/s3Accounting/queries.js | 104 +++++ src/s3Accounting/routes.js | 15 + src/s3Accounting/views/DetailView.js | 151 +++++++ src/s3Accounting/views/ListView.js | 200 +++++++++ src/s3Accounting/views/index.js | 2 + yarn.lock | 73 +++- 19 files changed, 1630 insertions(+), 9 deletions(-) create mode 100644 src/assets/s3.png create mode 100644 src/s3Accounting/components/ComparisonTab.js create mode 100644 src/s3Accounting/components/FileUploadTable.js create mode 100644 src/s3Accounting/components/FileUploadsTab.js create mode 100644 src/s3Accounting/components/S3InventoryTab.js create mode 100644 src/s3Accounting/fragments.js create mode 100644 src/s3Accounting/queries.js create mode 100644 src/s3Accounting/routes.js create mode 100644 src/s3Accounting/views/DetailView.js create mode 100644 src/s3Accounting/views/ListView.js create mode 100644 src/s3Accounting/views/index.js diff --git a/package.json b/package.json index 5f15f1815..323f0ebc7 100644 --- a/package.json +++ b/package.json @@ -41,6 +41,7 @@ "query-string": "^6.12.1", "react": "^16.8.3", "react-app-rewire-postcss": "^3.0.2", + "react-charts": "^2.0.0-beta.7", "react-copy-to-clipboard": "^5.0.1", "react-datasheet": "^1.4.1", "react-dom": "^16.8.3", @@ -49,6 +50,7 @@ "react-editor-js": "^1.9.0", "react-helmet": "^5.2.1", "react-hot-loader": "^4.3.12", + "react-icons": "^4.3.1", "react-markdown": "^4.2.2", "react-modal": "^3.8.1", "react-router-dom": "^5.2.0", diff --git a/src/App.css b/src/App.css index 8808b45ac..71124787d 100755 --- a/src/App.css +++ b/src/App.css @@ -44,6 +44,10 @@ body { margin-top: 0px !important; } +.mt--10 { + margin-top: -10px !important; +} + .mr-0 { margin-right: 0px !important; } @@ -342,6 +346,10 @@ body { color: #676767 !important; } +.text-dark-grey { + color: #5e5e5e !important; +} + .text-black { color: #000000 !important; } @@ -542,6 +550,14 @@ body { height: 38px !important; } +.h-24 { + height: 24px !important; +} + +.h-220 { + height: 220px !important; +} + .small-inline { display: inline-block; padding-top: 10px; diff --git a/src/assets/s3.png b/src/assets/s3.png new file mode 100644 index 0000000000000000000000000000000000000000..f89de6f6ccb3db90768057bc8bbd436160b339f2 GIT binary patch literal 39184 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
  • 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 fh${Mje!0wpK!eFjqh5#O{s7NOD|<|}g?HS)5+` { +export const longDate = date => { var mydate = new Date(date); var month = [ 'Jan', @@ -19,7 +19,7 @@ export const longDate = (date) => { return str; }; -export const toYearMonthDay = (isoDate) => { +export const toYearMonthDay = isoDate => { /* * Convert ISO8601 UTC datetime string to local datetime and format as * yyyy-mm-dd date string. @@ -39,3 +39,34 @@ export const toYearMonthDay = (isoDate) => { } return date; }; + +// Reformat time to the date and time format +export const dateTime = date => { + var mydate = new Date(date); + var month = [ + 'Jan', + 'Feb', + 'Mar', + 'Apr', + 'May', + 'Jun', + 'Jul', + 'Aug', + 'Sept', + 'Oct', + 'Nov', + 'Dec', + ][mydate.getMonth()]; + const weekday = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']; + var str = + weekday[mydate.getDay()] + + ', ' + + month + + ' ' + + mydate.getUTCDate() + + ', ' + + mydate.getFullYear() + + ', ' + + mydate.toLocaleTimeString([], {hour: '2-digit', minute: '2-digit'}); + return str; +}; diff --git a/src/common/enums.js b/src/common/enums.js index 80163a4d7..1123fe587 100644 --- a/src/common/enums.js +++ b/src/common/enums.js @@ -667,6 +667,7 @@ export const permissionIcon = { validationresultset: 'code', datatemplate: 'file excel', organization: 'group', + storageanalysis: 'box', }; // Icon color for different permissions diff --git a/src/components/Header/Header.js b/src/components/Header/Header.js index a66948ebe..395f37b7c 100644 --- a/src/components/Header/Header.js +++ b/src/components/Header/Header.js @@ -277,6 +277,12 @@ const Header = ({location}) => {