instead of
![]()
for building hierarchy. Solve problem with Chromium which
always draws boundary around img without src.
2. For logarithmic scales try to find optimal minimum to represent histograms like in ROOT
3. Interpret logx/logy options when drawing histogram
4. Introduce plus_minus class to handle clicks on plus/minus sign correctly.
19.11.2014
1. Correctly locate $ROOTSYS/etc/http directory
2. First step in using jQuery in hierarchy browser, some functions not yet working.
One could exclude multiple global ids in html, all differences between
items now handled in click processing. No need for global JSROOT.H('root') element.
3. Trigger buttons and context menu in dtree also with jQuery
4. Minimize html code, generated for dtree - overall reduce by about 40%.
For a moment significant amount of code is used by url to different small images.
Should be optimized as well.
5. Replace major dtree icons with class definitions, further 10% reduction of html size
6. Remove all images from root/dabc, integrate in future all small icons in css files.
18.11.2014
1. Keep tracking which elements where drawn, provide possibility
to iterate over all painters in all frames
2. Use TBasePainter for editors like param and cond editors,
painter pointer is assigned to first child element in the frame
3. Allow to draw several items in the same frame, keep possibility to
update all of them independently.
4. Use DABC.HierarchyPainter when drawing single element with draw.htm
5. Implement fancy workaround in condition painter to guess full histogram name
6. Clear interface for monitoring parameters in both JSROOT and DABC painter
17.11.2014
1. Account histogram statistic under conditions
2. Fill stat box for different conditions kinds
3. Detect DABC.source_dir location when dabc.js script is loaded
4. Load gauge scripts only when required
5. Detect JSROOT.source_dir location when JSRootCore.js script is loaded
14.11.2014
1. When drawing single element, load all additional scripts as specified
2. Export application state to hierarchy
3. Force export of ratemeter values into hierarchy.
4. Provide possibility to load user scripts with JSROOT.BuildSimpleGUI
and JSROOT.AssertPrerequisites, also with main index.htm
5. Modify method how and when histogram statistic is calculated
13.11.2014
1. First draft of condition editor for go4. Load prepared html code and
implement jquery-based guis
2. Support 'editor' option for conditions - painter automatically starts editor mode.
3. First dummy version of go4 parameter editor.
4. Provide CompleteOnline method to perform actions as loading of extra scripts
before any HTML elements will be created
5. Move condition and parameter editor with JavaScript into go4 project
6. Check that same scripts tried load only once.
12.11.2014
1. In hierarchy fix error how history is provided -
element with exact version number should not be delivered.
2. Add simple statbox drawing for condition
3. Fix drawing of zero-rate in dabc.js
4. Update JSROOT docu
11.11.2014
1. Make more flexible central index.htm in JSROOT.
One could specify separately files list and path where files are.
'path' parameter also can be set in URL.
2. First implementation of Go4WinPainter class in JS
3. Implement TCutG painter in JSROOT
4. Use it for TGo4PolyCond painter
5. First try to draw condition statistic with TPaveStats
6. Introduce JSROOT.Create() method to create all supported ROOT classes,
use it at all places where required
10.11.2014
1. Merge latest changes from Bertrand
2. Use direct element pointer when executing command via button click
3. Add filesdir as parameter in index.htm
4. Improve drawoptions.htm (no read files when only build minimal list)
7.11.2014
1. To avoid problem with CORS requests comment out "If-Modified-Since" header
2. Support of fast buttons in DABC server and web browser
3. Implement three commands in Go4 as fast buttons
4. Tag JSROOT as version 3, start 3.1 as developer version
6.11.2014
1. When drawing TGraph as number of markers, preselect only visible markers
2. Use polyline when drawing simple graph
3. Size of font in TLatex is adjusted like in ROOT - by min from pad width or height
4. Automatically shrink frame from left when axis labels does not fit into canvas
5. Recover frame position if there is enough place again.
6. When doing move or resize of title/statbox, limit it by pad boundaries.
7. Move pave stats and drag box to the front always
5.11.2014
1. Fix problem with TCanvas without TFrame
2. Adopt changes from Bertrand
3. Adjust drawing of moving rect of stat box, better placement of text is stat box
4. Use rounded point coordinates when drawing TGraph and 2D histograms
5. Remove unnecessary circle elements for tooltips when drawing TGraph with markers.
Tooltips are specified for markers anyway.
6. When drawing TGraph as number of markers, filter out all markers from outside range.
4.11.2014
1. Fix problem with disable/enable of tooltip when selecting region
2. Fix warning in Firefox with "opacity" and "font-weight/style"
3. Implement drawing of title via TPaveText object (like in ROOT),
solve problem with title resize
4. Fix problem when adjust font size to existing pave - one need to
account empty spaces and font size is integer.
31.10.2014
1. In http::Server add possibility to configure locations of files.
It lets possibility to use some default location like /go4sys or
one could assign item file like go4_condeditor.htm to $go4sys/html/condeditor.htm.
2. Provide exe.txt method to execute any method of any registered object.
3. Provide in TRootSniffer possibility to redefine base object scan methods
4. In JavaScript handle extra possibility to start context menu
30.10.2014
1. Repair functionality of gosip GUI.
2. Add support of TPolyMarker3D in JavaScript I/O
29.10.2014
1. Fix problem with nobrowser and several items drawing
2. Process drawoptions when draw items from http server
3. Process immediately change of monitoring flag,
do not submit next request for the object when previous not finished.
4. Support nobrowser option for online GUI.
24.10.2014
1. Fix problem with colz toggling
23.10.2014
1. In main index.htm page browser can be disabled (nobrowser parameter) and
page can be used to display only specified items from the file
2. Also support layout parameter to display many file items
3. Use central page when display file items (fileitem.htm is obsolete now)
4. When redraw elements in the frame, do not delete container draw_g, but clean it.
Solves problem with histogram update, when zoom rect goes below histogram
5. Fix problem with 2D X axis drawing when automatically shrink frame due to colz.
6. Prevent tooltip when doing zooming.
22.10.2014
1. Exclude zeros from TProfile drawing
2. Add possibility to 'expand' normal objects in the hierarchy browser.
For instance, this gives access to single elements of canvas,
when whole canvas cannot be drawn.
3. Correctly use colors map, provided with TCanvas.
4. In TBufferJSON correctly process CheckObject method to enable store of
colors map in the buffer.
5. Repair logic with canvas monitoring, implement monitoring of different text painters.
6. TPaveText drawing use .attr("xml:space","preserve") to preserve multiple spaces in text.
7. Introduce JSROOT.redraw() function which is capable to create or update object drawing.
21.10.2014
1. Fix problem with colz palette drawing from TCanvas.
2. Re-enable 3D drawing for 2D/3D histograms
3. Extract 3D drawings into separate JSRoot3DPainter.js script
4. Use newest three.mjs (r68) for 3D drawings, solves problem with Firefox.
5. Introduce generic list of draw functions for all supported classes.
Makes simpler to add support for user-specific classes.
20.10.2014
1. Major redesign of JS painting code.
2. Painter class provided for every drawn object
3. As first argument of any draw function divid should be specified.
4. Clear organization of SVG containers for TCanvas/TPad, TFrame and each object
5. Clear assignment of painters lists to canvas/pad painters.
6. Now correct dynamic update and resize of canvas is possible (should be intensively tested).
7. Also simple way to cleanup drawings via jQuery empty() method.
15.10.2014
1. Tag current version as 2.7.0
2. Remove extra svg:g container when drawing bins - only svg is used.
3. When extracting parameters from URL string, automatically replace symbols like %20 into ' '
14.10.2014
1. Create drawoptions.htm page, showing all supported options.
2. Decode options directly in JSROOT.HistPainter class.
3. Implement JS custom streamer for TCanvas, restore aspect ratio when drawing
4. Fix problem while clamp() excluded and log scale with negative values fails.
5. Optimize axis drawing, group related elements together in same
element
13.10.2014
1. Introduce docu files for JSROOT
2. When one appends "+" to the filename, its content read completely with first I/O operation.
3. When drawing TCanvas/TPad on empty frame, scale it's height according original ratio.
9.10.2014
1. Remove clamp(true), when creating logx/logy scales.
8.10.2014
1. Remove node name from TRootSnifferStoreXml class, implement compact form.
2. When drawing 2D histograms with 'col' or 'colz' options, always scale palette on
bins in selected range.
3. Show progress with scripts loading in the browser window
7.10.2014
1. Implement correct drawing of single DABC element. Like in JSROOT, one could
use draw.htm for single element or main.htm for hierarchy display.
2. One can specify 'monitoring' and 'history' parameters for DABC pages like:
http://localhost:8090/?monitoring=3000&history
http://localhost:8090/FESA/Test/TestRate/draw.htm?monitoring=1000&history
If specified as parameter, monitoring or history checkbox will be disabled.
3. Try to prevent access to the files below httpsys, jsrootsys, dabcsys directories
4. Evaluate 'monitoring' parameter for ROOT online server like:
http://localhost:8080/?monitoring=1000.
Parameter defines how often displayed objects should be updated.
5. Fix problem with zoom rectangle limits after frame resize.
6. Implement 'opt' and 'opts' URL parameters for main page.
6.10.2014
1. Several bugfixes in JSROOT.
2. Add "shortcut icon" for DABC and ROOT servers
3. Add demo of online THttpServer - shell script copies data from
running httpserver.C macro on Apache webserver.
26.09.2014
1. Adjust dabc.js to the current JSROOT code, exclude DABC.Manager class completely.
2. Cleanup code in TBufferJSON - remove dummy class
3. Introduce THttpCallArg::CompressWithGzip() method, which can be used now outside THttpServer
4. Also in online server process url options like "item", "items", "layout"
5. Possibility to generate URL, which reproduces opened page with layout and drawn items
25.09.2014
1. Introduce demo.htm, which demonstrates online usage of JSROOT.
2. One could use demo.htm directly with THttpServer providing address like:
http://localhost:8080/jsrootsys/demo/demo.htm?addr=../../Files/job1.root/hpx/root.json.gz&layout=3x3
24.09.2014
1. Provide JSROOT.RegisterForResize functions to unify method how window resize
events handled in different scripts.
2. Implement JSROOT.GetUrlOption to extract options from document URL.
3. Provide example file.htm how read and display item from ROOT file.
4. Provide in context menu possibility to draw single element from the file.
5. Remove hsimple.htm, provide in index.htm possibility to specify
'file', 'layout', 'item' and 'items' via url options like:
http://web-docs.gsi.de/~linev/js/3.0/index.htm?file=files/hsimple.root&item=hpx;1
6. Support direct reading of objects from subdirectories in JSROOT.TFile.
7. Adjust callback interface when reading files, fix several problems,
support of arbitrary sub-sub-directory level when reading objects
23.09.2014
1. Introduce painter class for TCanvas, support resize and update of canvas drawing.
2. Move correspondent code into draw.htm, simplify it (no need for dummy hierarchy).
3. Process resize event in the draw.htm
4. Show wait cursor style while doing redraw of the picture
22.09.2014
1. Implement 'grid' display in ROOT JavaScript
2. One could specify 'grid 3x3' or 'grid 4x2'.
Display object created at the moment when first draw is performed.
3. Correctly update content of TProfile object
19.09.2014
1. Correctly unregister worker from publisher - make it possible to register
worker under same path again. Important when application shutdown and restarted again.
2. Remove application as direct parent of modules, devices and pools.
3. Introduce 'Transition' state. Use it to avoid situation that somebody
(or Application iself) detect error while modules disappear while 'Running' state.
18.09.2014
1. Eliminate code division between dabc::ApplicationBase and dabc::Application
Now generic functionality provided in dabc::Application class, user
can extend it by sub-classing
2. Simplify logic behind state-machine in application. Now three states are
defined - 'Halted', 'Ready' and 'Running'. There is only method called
DoTransition(), where state could be changed.
3. There are several commands defined to switch between states.
4. Try to stop input/output transports at the suitable moment, when communication
with correspondent i/o object is in stable state. For instance, one should not
stop event processing when callback function is awaited.
17.09.2014
1. In the dabc::Transport class reduce maximal number of input/output loops
per each port. This guarantee that after each data processing transport
returns to the main loop, which enables faster command processing or shutdown.
16.09.2014
1. Adjust size of color palette drawing when labels would take more place as provided.
2. Add correct filling of statistic for TProfile
3. Provide way to select display kind ('collapsible', 'tabs') in the simple GUI.
15.09.2014
1. Add "halttime" parameter into configuration time. Defines maximal time which
can be spend in the halt process. By default it is 0.7 s.
2. Introduce display class for MDI drawing. Provide two implementations -
'collapsible' for old kind and 'tabs' for new kinds.
11.09.2014
1. Implement resize functionality in ROOT JS.
2. Add interactively moving slider on the main page.
10.09.2014
1. In JS axis painter use actual number of ticks when drawing sub-ticks.
29.08.2014
1. In hadaq::CombinerModule make configurable time, when module allowed to
drop all buffers. Required during HADES beamtime while pause between spills were
longer than default 10 s.
20.08.2014
1. Move HADAQ terminal output into separate module.
2. Provide more statistic in the TerminalModule
3. Deliver to the server title of the objects, display it as hint in the browser.
4. Better handling of special characters in the hierarchies - allows to display
symbols like ' or " in the file structure.
5. Provide key cycle number when scanning TDirectory,
makes look and feel as existing ROOT browser.
19.08.2014
1. Generate HTML only for visible elements in the hierarchy tree. This increase
dramatically performance of navigation in the big structures.
2. When toggle/update tree content, change whole line again and not single images or links.
Reduces number of required ids, remove ids for images completely.
3. In hadaq::UdpTransport print content of problematic packet when 'debug' option is specified.
4. Implement TerminalMode for hadaq::CombinerModule. Reproduces output of old event builder.
18.08.2014
1. Support different ROOT versions in ROOT plugin. Due to incompatible changes in
TBuffer class one requires separate versions for TBUfferJSON class.
2. Use own code to generate hierarchical structure in HTML, replace dtree.js which is
extremely slow for complex hierarchies
15.08.2014
1. Move JSRootIO into root plugin - now ROOT JS code fully independent from DABC.
2. Remove 'JSROOTIO.' prefix from _typename. Now real class name is used.
3. Use in all scripts JSROOT as central 'namespace'
4. Introduce context menu in 3D, use it for switch between 2D/3D modes
5. Everywhere use own-designed context menu
14.08.2014
1. In hadaq plugin correctly account dropped data.
Drop all data when at least one input gets some data.
2. Ensure that hadaq::Combiner parameters produce change events after 0.2 s.
With default settings (1s) EPICS control time to time produced zero rates.
3. Implement Emulation mode in hadaq::Observer for debugging purposes.
4. In JS work with streamer infos as with normal TList, support streamer info
display in online and offline mode, use 'fName' and 'fTitle' instead
of 'name' and 'title'
5. Fix several errors in JS TKey streamer, use member names as in ROOT itself.
6. Load scripts for 3D graphic only when they required
7. Load scripts for I/O only when required, for ROOT/DABC online monitoring this
reduces number of used js scripts from 10 to 5!
8. First working version of single element drawing in ROOT JS.
First working version of context menu in ROOT HPainter.
From now ROOT JS is fully independent from additional features of dabc.js
9. When displaying single element, one could specify draw options and monitor property.
13.08.2014
1. Remove old hierarchy display from dabc.js, use HPainter from JSROOT.
2. Remove binary-based requests with streamer infos from dabc.js.
Only for very special cases user can use binary I/O directly,
JSROOT.ReconstructObject shows how object can be reconstructed.
3. Remove master name from all ROOT hierarchies.
4. In hadaq plugin update netmem parameters with 0.2 sec period
Drop all buffers and produce message when one input do not deliver data at all
12.08.2014
1. Use new JSROOT functionality in dabc.js. One loads necessary
ROOT scripts automatically from the beginning.
2. Implement online hierarchy display for ROOT and DABC based on
JSRootPainter.HPainter class. For DABC window management remains,
for ROOT offline collapsible display reused. On the long run one could
introduce many different window managers (collapsible, tabs, subpads),
which could be easily exchanged with each other.
3. Online display for ROOT is independent now from dabc.js.
Main functionality in HPainter, window management in JSRootInterface.js.
11.08.2014
1. Move scripts/styles loading into JSRootCore.js.
One can specify any list of files for loading.
2. To construct simple GUI, one can use standard examples in JSRootInterface.js
or provide own list of scripts to load.
3. Simplify and make more flexible method of simple GUI building
8.08.2014
1. Remove most global variables and functions from JSRootPainter.js
2. Handle color palette local in Hist2Dpainter
3. Remove most global variables in JavaScript, use appropriate classes for them.
7.08.2014
1. First working version of JSROOT.Painter.HPainter. It should decouple
data manipulation from drawing. Later should be possible to change
layout and design how single objects are drawn. At the moment
ROOT file with sub-directories and TTree are working.
2. Support TList in HPainter
3. Fix small error in hist painter.
4. Support list of streamer infos in HPainter, also make example how to draw
sinfo structure in other window.
5. Support slashes in the item names.
6. Remove old code with fixed dtree-based file display. Complete hierarchy
of file keys and objects handled by HPainter class. dtree is just
many alternatives how display can be implemented.
5.08.2014
1. Adjust makefile for ROOT v6. For the moment own TRootSniffer
class will be used, later one can switch to the ROOT version.
2. Fix small error in dtree.js - one should always set
last sibling (_ls) property while tree can be dynamically changed
3. First try to read ROOT file inside dabc.js. Idea to extract common
functionality and avoid strong coupling of I/O and graphics as it
is now in JSRootIO.
4. In JSRootCore.js make central function, which handles different kinds
of XMLHttpRequest. Use for ROOT and DABC data reading. Use only async
requests, also for file header requests.
5. Load JSRootCore.js and JSRootPainter.js automatically, no nasty timeout
at the first draw.
4.08.2014
1. Merge HJsonStore and HXmlStore into same HStore class.
2. Implement dabc::Buffer and dabc::Reference as RecordFields.
3. Use new RecordFields capabilities in the dabc::Command
Remove ugly reference-to-string conversion.
4. Minimal changes in hadaq plugin - debug output about events gap
only when ExtraDebug is enabled
1.08.2014.
1. Remove old xml generation from hierarchy/history.
HJsonStore and HXmlStore are mainline now.
2. Use HStore classes for all kinds of text storage.
3. Command transport between hosts implemented in binary form.
4. Remove old xml generation in Record/Command class.
XML used directly only in reading of configuration
5. Process commands in root::Monitor, required by Go4
31.07.2014
1. Implement several levels of compressions when creating JSON.
2. Implement storage of hierarchy into JSON, including history.
3. By new JSON/XML storage do not use intermediate binary buffer.
Data directly written into string output. For XML case it also
eliminates intermediate XML structures.
4. Adjust TRootSnifferStoreJson to be compatible with DABC format.
5. Data exchange between server and client always performed in JSON.
Always h.json for hierarchy and get.json for data are used.
XML will be left just for historical reasons.
Tested with DABC/ROOT/Go4.
30.07.2014
1. Introduce HStore class to store hierarchy structure in JSON/XML formats.
Idea to make functionality comparable with TRootSnifferStore classes.
Later both ROOT and DABC should work with json-based descriptions.
29.07.2014
1. Move/resize of statbox works smoothly now also during updates.
2. Provide move/resize capability for title and colz options.
28.07.2014
1. Improve layout of HTML page in GOSIP page, adjust sizes dynamically.
25.07.2014
1. First version of gosip GUI with reading and writing of registers.
Many small layout problems need to be fixed.
2. Implement newline in json format, used in gosip data dump.
3. Implement all commands in GOSIP GUI
24.07.2014
1. Correct treatment of quotes and double quotes in RecordField.
Important when convertiong to JSON representation
2. When publisher analyzes URL with arguments, it tries to convert
each arguments to int or double first. Also each argument tested
if it can be repersented as vector. Need to be able correctly receive commands
with complex arguments via URL and to able respond with JSON.
3. Introduce gosip.js, put there most JavaScript code.
4. First version of gosip command, reading complete setup
23.07.2014
1. Introduce newest jquery-ui 1.11 for JSROOTIOm, also will be used for GOSIP gui
2. Implement in TRootSniffer compression for binary data,
activated when "zipped" option specified in query. Used in communication with go4.
3. Implement correct conversion of record data into JSON. Use double qoutes.
4. Return result of command execution in JSON form. It makes easier
to operate with complex data in command execution.
22.07.2014
1. Allow to read key objects from TFile in TRootSniffer
2. Fix min/max selection of TH1 histograms
3. Add possibility to redirect http request to specified directory.
4. Use redirection to introduce custom GUI for the gosipcmd utility.
21.07.2014
1. When doing syslog, add for errors or for other messages
2. Suppress several errors messages
3. In ROOT sniffer scan list of keys
4. Introduce read-only flag in sniffer. Only if off, sniffer allowed to read
objects and directories list from the files.
5. From dabc.js allow to read sub-directories content in TFile
6. Fix error in XML parser - processing of '
18.07.2014
1. Fix errors in TH1/TH2 statistic calculations
2. Switch to newest jQuery 1.11.1, do not use 2.x while IE 6/7/8 not supported.
3. Switch to newest jQuery 2.1.1 - anyway IE 6/7/8 is not supported by JSRootIO
17.07.2014
1. Switch to d3 v3.4.10. Fix several problems with log scales.
2. Fix problems in statistic drawing for 2D histograms.
3. Allow move and resize of stat box
15.07.2014
1. Provide example how insert ROOT graphics in the