@@ -5,13 +5,7 @@ import {LogProvider} from './Providers/LogProvider.js';
55import { LogTable } from './Components/LogTable.js' ;
66import { ToggleEntry } from './Components/ToggleEntry.js' ;
77import { LogUploader } from './Components/LogUploader.js' ;
8- import {
9- App as AppContainer ,
10- Entry ,
11- SideBar ,
12- Content ,
13- Separator
14- } from 'oc-react-components' ;
8+ import { App as AppContainer , Entry , SideBar , Content , Separator , Settings } from 'oc-react-components' ;
159
1610import { LogSearch } from './Search.js' ;
1711import { LogFile } from './Providers/LogFile.js'
@@ -20,10 +14,12 @@ import styles from '../css/app.css';
2014
2115export class App extends Component {
2216 state = {
23- 'entries' : [ ] ,
24- 'loading' : false ,
25- 'levels' : [ false , false , false , false , false ] ,
26- provider : null
17+ entries : [ ] ,
18+ loading : false ,
19+ levels : [ false , false , false , false , false ] ,
20+ provider : null ,
21+ relative : true ,
22+ dateFormat : 'Y-m-d\TH:i:sO'
2723 } ;
2824
2925 constructor ( ) {
@@ -36,11 +32,19 @@ export class App extends Component {
3632 } ) ;
3733 OCA . Search . logreader = new LogSearch ( this . logProvider ) ;
3834 this . saveLevels = _ . debounce ( this . logProvider . setLevels , 100 ) ;
35+ this . saveRelative = _ . debounce ( this . logProvider . setRelative , 100 ) ;
3936 }
4037
4138 async componentDidMount ( ) {
4239 const levels = await this . logProvider . getLevels ( ) ;
43- this . setState ( { levels, provider : this . logProvider } ) ;
40+ const relative = await this . logProvider . getRelative ( ) ;
41+ const dateFormat = await this . logProvider . getDateFormat ( ) ;
42+ this . setState ( {
43+ levels,
44+ relative,
45+ dateFormat,
46+ provider : this . logProvider
47+ } ) ;
4448 this . logProvider . load ( ) ;
4549 }
4650
@@ -77,6 +81,11 @@ export class App extends Component {
7781 logFile . load ( ) ;
7882 } ;
7983
84+ setRelative = ( relative ) => {
85+ this . setState ( { relative} ) ;
86+ this . saveRelative ( relative ) ;
87+ } ;
88+
8089 render ( ) {
8190 let entries = this . state . entries . filter ( entry => {
8291 if ( ! entry . level && entry . level !== 0 ) {
@@ -95,11 +104,18 @@ export class App extends Component {
95104 } ) ;
96105
97106 return (
107+
98108 < AppContainer appId = "logreader" >
99109 < SideBar > < LogUploader
100110 onLogFile = { this . onLogFile } />
101111 < Separator />
102112 { filters }
113+ < Settings >
114+ < ToggleEntry key = 'relative' active = { this . state . relative }
115+ onChange = { this . setRelative } >
116+ Relative Dates
117+ </ ToggleEntry >
118+ </ Settings >
103119 </ SideBar >
104120
105121 < ReactScrolla
@@ -108,7 +124,9 @@ export class App extends Component {
108124 onPercentage = { this . fetchNextPage }
109125 isLoading = { this . state . loading } >
110126 < div className = { styles . content } >
111- < LogTable entries = { entries } />
127+ < LogTable entries = { entries }
128+ relative = { this . state . relative }
129+ dateFormat = { this . state . dateFormat } />
112130 </ div >
113131 </ ReactScrolla >
114132 </ AppContainer >
0 commit comments