-
Notifications
You must be signed in to change notification settings - Fork 2
SC-385 Files Processed Tab #855
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
nbeatty-gpa
wants to merge
32
commits into
master
Choose a base branch
from
SC-385-File-Watcher
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
32 commits
Select commit
Hold shift + click to select a range
158e838
add filewatcher tab with base functionality
nbeatty-gpa 0d636c7
improve styling and layout
nbeatty-gpa 86419dd
add Y Axis label
nbeatty-gpa c40b4bc
change file watcher to files processed, with changes to data
nbeatty-gpa 9f77bb0
add file name to system center data file
nbeatty-gpa 32c4f99
move Data operation failures away from using StatusGroup
nbeatty-gpa 76f402c
add stack trace and log to data operation failures
nbeatty-gpa 4e187a0
add plot selection to filter processed files table and data operations
nbeatty-gpa 1bc1f34
add selection for data operation failures and files
nbeatty-gpa 5a201c7
fix plot bugs and include processing state in table
nbeatty-gpa 64ee694
make data operation failure separate component
nbeatty-gpa 5ebad32
page and scroll data operation failures
nbeatty-gpa 360f455
refactor selection-based searches
nbeatty-gpa 29cde9b
add files processed tab
nbeatty-gpa e5fe2c8
move processing status to common component
nbeatty-gpa 08d7298
split into separate components
nbeatty-gpa 34ec51c
make Y-axis label more accurate
nbeatty-gpa 259b536
fix processing state column label
nbeatty-gpa ee8050b
revert unintentional default url change
nbeatty-gpa 499d1bf
use custom sql query in RecentFailures
nbeatty-gpa c3683bc
convert Processing Status to use Enum explicitly
nbeatty-gpa 1207efc
remove hardcoded database names
nbeatty-gpa f173a88
remove unneeded length check
nbeatty-gpa 4713f69
move network request to helper function to allow for proper effect de…
nbeatty-gpa 4e3acf7
include status setters
nbeatty-gpa 6a95a67
move network request to pure helper function
nbeatty-gpa fab5590
move network request to pure helper function
nbeatty-gpa ef6d947
use loading screens and error boundaries in file watcher sub components
nbeatty-gpa ff104da
add auth check to aggregate recently processed files endpoint
nbeatty-gpa c14a0ec
add auth check to recent failures endpoint
nbeatty-gpa e8d2fef
use loading icon instead of loading screen
nbeatty-gpa 1015a6d
remove LoadingScreen
nbeatty-gpa File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
93 changes: 93 additions & 0 deletions
93
...plications/SystemCenter/wwwroot/Scripts/TSX/SystemCenter/AppHost/DataOperationFailure.tsx
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,93 @@ | ||
| //****************************************************************************************************** | ||
| // DataOperationFailure.tsx - Gbtc | ||
| // | ||
| // Copyright © 2026, Grid Protection Alliance. All Rights Reserved. | ||
| // | ||
| // Licensed to the Grid Protection Alliance (GPA) under one or more contributor license agreements. See | ||
| // the NOTICE file distributed with this work for additional information regarding copyright ownership. | ||
| // The GPA licenses this file to you under the MIT License (MIT), the "License"; you may not use this | ||
| // file except in compliance with the License. You may obtain a copy of the License at: | ||
| // | ||
| // http://opensource.org/licenses/MIT | ||
| // | ||
| // Unless agreed to in writing, the subject software distributed under the License is distributed on an | ||
| // "AS-IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. Refer to the | ||
| // License for the specific language governing permissions and limitations. | ||
| // | ||
| // Code Modification History: | ||
| // ---------------------------------------------------------------------------------------------------- | ||
| // 05/04/2026 - Natalie Beatty | ||
| // Generated original version of source code. | ||
| // | ||
| //****************************************************************************************************** | ||
| import * as React from 'react' | ||
| import moment from 'moment' | ||
| import { ToolTip } from '@gpa-gemstone/react-forms' | ||
| import { OpenXDA } from '@gpa-gemstone/application-typings'; | ||
|
|
||
| export interface INamedDataOperationFailure extends OpenXDA.Types.DataOperationFailure { | ||
| DataFileName: string | ||
| } | ||
| interface IProps { | ||
| NamedDataOperationFailure: INamedDataOperationFailure | ||
| SelectedFile: number | ||
| Hovered: string | ||
| HandleViewMoreClick: (info: string, evt: React.MouseEvent) => void | ||
| SetHovered: React.Dispatch<React.SetStateAction<string>> | ||
| } | ||
|
|
||
| const DataOperationFailure = (props: IProps) => { | ||
| return <div className={`row alert-${props.NamedDataOperationFailure.FileGroupID === props.SelectedFile ? 'warning' : 'danger'} m-2`} | ||
| key={props.NamedDataOperationFailure.ID} | ||
| > | ||
| <div className={'col-2 d-flex justify-content-center align-items-center'}> | ||
| <span className={`badge badge-pill badge-secondary`}>{moment(props.NamedDataOperationFailure.TimeOfFailure).format('MM/DD/YYYY hh:mm')}</span> | ||
| </div> | ||
| <div className={'col-3 d-flex justify-content-center align-items-center'}> | ||
| <h6>{props.NamedDataOperationFailure.DataOperationTypeName.split('.')[props.NamedDataOperationFailure.DataOperationTypeName.split('.').length - 1]}</h6> | ||
| </div> | ||
| <div className={'col-3 d-flex justify-content-center align-items-center'}>{props.NamedDataOperationFailure.DataFileName}</div> | ||
| <div className={'col-2 d-flex justify-content-around align-items-center'}> | ||
| <div className={'btn btn-primary'} | ||
| onMouseEnter={() => props.SetHovered(`failurelog${props.NamedDataOperationFailure.ID.toString()}`)} | ||
| onMouseLeave={() => props.SetHovered('')} | ||
| data-tooltip={`failurelog${props.NamedDataOperationFailure.ID.toString()}`} | ||
| > | ||
| View Log | ||
| </div> | ||
| <ToolTip | ||
| Show={props.Hovered === `failurelog${props.NamedDataOperationFailure.ID.toString()}`} | ||
| Target={`failurelog${props.NamedDataOperationFailure.ID.toString()}`} | ||
| > | ||
| {props.NamedDataOperationFailure.Log.length > 100 | ||
| ? <> | ||
| <p>{`${props.NamedDataOperationFailure.Log.slice(0, 100)}...`}</p> | ||
| <a href="#" onClick={(evt) => { props.HandleViewMoreClick(props.NamedDataOperationFailure.Log, evt) }}>View more</a> | ||
| </> | ||
| : <p>{props.NamedDataOperationFailure.Log}</p>} | ||
| </ToolTip> | ||
| </div> | ||
| <div className={'col-2 d-flex justify-content-around align-items-center'}> | ||
| <div className={'btn btn-primary'} | ||
| onMouseEnter={() => props.SetHovered(`failurestacktrace${props.NamedDataOperationFailure.ID.toString()}`)} | ||
| onMouseLeave={() => props.SetHovered('')} | ||
| data-tooltip={`failurestacktrace${props.NamedDataOperationFailure.ID.toString()}`} | ||
| > | ||
| View Stack Trace | ||
| </div> | ||
| <ToolTip | ||
| Show={props.Hovered === `failurestacktrace${props.NamedDataOperationFailure.ID.toString()}`} | ||
| Target={`failurestacktrace${props.NamedDataOperationFailure.ID.toString()}`} | ||
| > | ||
| {props.NamedDataOperationFailure.StackTrace.length > 100 | ||
| ? <> | ||
| <p>{`${props.NamedDataOperationFailure.StackTrace.slice(0, 100)}...`}</p> | ||
| <a href="#" onClick={(evt) => { props.HandleViewMoreClick(props.NamedDataOperationFailure.StackTrace, evt) }}>View more</a> | ||
| </> | ||
| : <p>{props.NamedDataOperationFailure.StackTrace}</p>} | ||
| </ToolTip> | ||
| </div> | ||
| </div> | ||
| } | ||
|
|
||
| export default DataOperationFailure |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.