diff --git a/ivette/src/frama-c/states.js b/ivette/src/frama-c/states.js index 5578e979f60709df23d3bd48d4677639674d9af9..661315cc69a7e5b66d8a13808260d61afa376eb7 100644 --- a/ivette/src/frama-c/states.js +++ b/ivette/src/frama-c/states.js @@ -272,7 +272,7 @@ class SyncArray getItems() { if (!this.insync && Server.isRunning()) this.fetch(); - return this.items; + return this.index; } isEmpty() { @@ -290,16 +290,15 @@ class SyncArray reloaded = this.isEmpty(); this.index = {}; } - removed.forEach((id) => { - delete this.index[id]; + removed.forEach((key) => { + delete this.index[key]; }); updated.forEach((item) => { - this.index[item.id] = item; + this.index[item.key] = item; }); if (reloaded || removed.length || updated.length) Dome.emit( this.UPDATE ); if (pending>0) { - console.log('PENDING'); this.fetch(); } }); diff --git a/ivette/src/renderer/Properties.js b/ivette/src/renderer/Properties.js index eed27a148fc9c193fb5099def75facf4c668a6b3..bcece26446149430bbe4693f2c82798c490c100d 100644 --- a/ivette/src/renderer/Properties.js +++ b/ivette/src/renderer/Properties.js @@ -2,22 +2,25 @@ // --- Properties // -------------------------------------------------------------------------- +import _ from 'lodash' ; import React from 'react' ; import Dome from 'dome' ; import States from 'frama-c/states' ; import { ArrayModel } from 'dome/table/arrays' ; +import { Table, Column, DefineColumn } from 'dome/table/views' ; // -------------------------------------------------------------------------- // --- Properties Array // -------------------------------------------------------------------------- -const Table = () => { +const PropTable = () => { const model = React.useMemo( () => new ArrayModel() ); - const items = States.useSyncArray('kernel.properties'); + const items = _.toArray( States.useSyncArray('kernel.properties') ); + console.log(items); if (items) return ( <ul> - {items.map((item) => (<li key={item.id}><tt>{item.id}</tt></li>))} + {items.map((item) => (<li key={item.key}><tt>{item.key}</tt></li>))} </ul> ); else @@ -28,6 +31,6 @@ const Table = () => { // --- Exports // -------------------------------------------------------------------------- -export default { Table }; +export default { PropTable }; // -------------------------------------------------------------------------- diff --git a/src/plugins/server/states.ml b/src/plugins/server/states.ml index 9ec13539dd1a4a1e4e83dfb3f80742f0cd7ad763..7ba8567e3eec5fd79a1b9d80c3c6d445e8fb9380 100644 --- a/src/plugins/server/states.ml +++ b/src/plugins/server/states.ml @@ -96,7 +96,7 @@ let model () = ref [] let column (type a b) ~(model : a model) ~name ~descr ~(data: b Request.output) ~(get : a -> b) () = let module D = (val data) in - if name = "id" || name = "_index" then + if name = "key" || name = "index" then raise (Invalid_argument "Server.States.column: invalid name") ; if List.exists (fun (fd,_) -> fd.Syntax.name = name) !model then raise (Invalid_argument "Server.States.column: duplicate name") ;