JS9 ChangeLog
Public Release 2.6 (TBD)
- improve menu placement for Jupyter support
- replace image filter menu with plugin that supports parameter adjustments
- just redisplay already-loaded slices
- added PanZoom controls to Zoom menu, containing "pan to" support
- wcs menu: don't show wcs options if image has no wcs
- add Google's new turbo colormap
- add analysis plot configuration dialog box to set data range and scale
- improve panner to show display area (not image area)
- infobox: fix bug displaying image coords instead of phys if sys was image
- webworker init: avoid CORS problems when webworker is on a remote location
- add array-based x,y flip and +/- 90 degree rotation to the Zoom menu
- add JS9.SetRot90() and JS9.SetFlip() public access routines
- improve LTM/LTV support, various bug fixes
- avoid weakness in wcslib causing the wrong header length to be used
- fix error handling when called from external message
- update emscripten to v1.39.3 (required several changes to montage)
- upgrade code to use ES6
Public Release 2.5 (August 30, 2019)
- re-displaying an image now calls the onload callback
- JS9.BlendDisplay('reset') unsets blended images
- JS9.DisplayExtension('all') loads all image extensions
- JS9.ReprojectData('all') uses the current image to reproject others
- JS9.Load('foo.fits', {allext: true}) loads foo.fits, then all extensions
- add 'Display all images' button to Extensions plugin
- add support for loading all images in a multi-extension FITS file at once
- fix typo that made incorrect sections of non-rectangular images at zoom < 1
- fix bug when zooming image with a selected region
- fix bug when loading multiple annuli at once
- fix regression in DisplaySection: new ext was not added to FITS filename
Public Release 2.4 (July 15, 2019)
- fix double tap to close capability on iPhones
- fix internal regcnts tasks using annuli on iOS devices and re-enable them
- wcs grid: fix high limit display coordinates
- analysis menu: only display 3d analysis menu options for 3d images
- refactor LoadWindow so load waits for the lightwin to be fully created
- desktop app: support merging analysis tasks and loading foreign web pages
- add JS9.GetAnalysis() to return analysis task definitions
- add missing routine in internal CountsInRegions() and RadialProfile()
- add support for "All" selection of regions to include text children
- GetRegions: return text child region id
- desktop app: enabling node mounts local file system for direct FITS access
- desktop app: add security checks
- fix overly-aggressive .gitignore and add missing files
- fix typo that broke createMosaic("all")
- fix bugs in imexam plugins using a rotated line to define the image section
- fix spinner when using open local file dialog
- update emscripten to v1.38.37
- update contextMenu to v2.8.0
Public Release 2.3 (May 1, 2019)
- support for Mac app, a bit of Windows app: see github/ericmandel/js9app
- Electron desktop app: use internal colorpicker if Electron version >= 5
- add logo support
- add AlignPanZoom() public routine
- add --cmds [cmds] and --cmdfile [file] switches to js9Electron.js
- add --node switch to js9Electron.js, allowing nodeIntegration
- add JS9.globalOpts.onpreload property
- fix wcs alignment of blended images during pan and zoom operations
- fix mosaic code, which needed area mosaic file after all
- redesign Menubar to use more submenus, especially File menu
- fix bug in the supermenu sometimes not displaying the File sub-menus
- work around invalidation of emscripten heap pointers when memory increases
- add ability to change child text options via the parent shape
- add ability to push selected region to bottom of overlapping stack ('d')
- add ability to select all regions ('S' and Regions menu option)
- add SaveDir public routine (desktop app only) to set the save directory
- SavePNG,SaveJPEG: add option to save image RGB pixels instead of display
- SavePNG,SaveJPEG: add option to skip saving the layers (e.g. regions)
- shape layers (incl. regions) can now be exported in SVG format
- closing a light window that displays images now supports: close, move, ask
- add support for unconstrained panning
- dynamically select a JS9 display (supports one plugin for many displays)
- SaveColormap: allow multiple colormaps to be save at once
- add ability to change color, width, dash lines, tags of selected regions
- fix bug in "north is up" rotation: take CDELT values into account
- add direction vector to panner
- display regions in lightwin instead of on display or in infobox
- add region copyToClipboard capability (so 'p' always pastes last region)
- add ability to specify display opts in a FITS header (IMOPTS param)
- add ability to specify colormaps in a FITS header (IMCMAP param)
- add ability to create image cutouts of selected region(s)
- add ability to rename a JS9 display via JS9.RenameDisplay() api call
- ensure saved order of images after session load
- add --title and --renameid options to desktop app to rename display ids
- parameterize initial blending params
- Preload() loads .cmap files as colormaps
- colormaps: specify m colorwheel slices, from which n colormaps are assigned
- add ability to specify {display: id} param to external api calls
- add ability to unremove previously removed regions
- add ability to select regions based on the file from which they were loaded
- calling LoadRegions() twice removes previous regions loaded from the file
- add globalOpts.quietReturn to silence 'OK' messages
- Desktop (Electron.js) version: add --savedir option to skip save dialog
- JS9.Load(): globalOpts.reloadRefresh property to control reloading an image
- add 'revert' option to wcs reproject submenu
- wcs menu: each wcs system has own current units (based on initial defaults)
- fix region parser to see 'linear' as wcs, not a 'line' region
- cmaps: allow color choice via text input in fallback colorpicker
- fix memory leaks in reproject code
- LoadColormap: support file containing array of colormaps
- Infobox: for long filenames, click to see right hand side
- addColormaps now replaces a cmap with same name
- add 3D plot capabilities for data cubes in Analysis menu
- many improvements to user-defined menus
- turn on wasm in js9's Electron.js Desktop app
- menu: allow load/save of cmaps without a loaded image
- when blending, only sync zoom/pan reprojected images that are wcs aligned
- reproject: use float32 instead of float64 if datatype allows (less memory)
- reproject: correctly align images when wcs ref image is panned or zoomed
- reproject: fix memory leaks, always go back to original image
- js9 helper: increase ping timeout to avoid Chrome disconnects
- improve header generation and FITS card handling
- allow DisplaySection() to display the new section in a different display
- add colormaps plugin to create (complementary) colormaps
- fine-tune positioning: arrow keys display small crosshair cursor
- fine-tune positioning: arrow keys change magnifier display center
- regions menu: listonchange can act on "selected" (default) or "all" regions
- preferences plugin: image parameter for "all" or "selected" listonchange
- Meta (or Ctrl) now used for keyboard shortcuts displaying a light window
- edit, region menus: add option to display region configuration window
- add 'M-e' keyboard shortcut to display region configuration window
- add 'M-o' keyboard shortcut to open a local file
- add 'p' keyboard shortcut to paste regions at current mouse position
- (joining 'P' keyboard shortcut to paste regions at their own position)
- add 's' keyboard shortcut to select region that contains the mouse
- fix bug when saving/copying regions inside a rotated group
- Meta key during mouse move no longer updates internal image position
- update emscripten to v1.38.28
- update fabric.js to v2.7.0
Public Release 2.2 (October 9, 2018)
- add sync plugin: synchronize operations between two or more images
- add JS9.SyncImages() and JS9.UnsyncImages() public access routines
- SetParam(): setting a core param calls the core function
- add support for disabling colormap, pan, regions, scale, wcs, or zoom for a given image
- add Scale Clipping Limits plugin (with pixel distribution plot)
- add support for setting up a proxy from Apache to the Node.js helper
- add Separate/Gather Images plugin
- desktop app: add support for printing entire window
- desktop app: add support for saving entire window to a pdf file
- add support for loading all slices of a data cube separately into JS9
- add support for user-defined menus in the Menubar
- add support for averaging pixels when binning (def: summing)
- add support for Mac-style menubars
- add Edit menu to Menubar (copy/paste regions, positions, values)
- add JS9.DisplayCoordGrid() and associated client-side task to Analysis menu
- add JS9.CountsInRegions() and associated client-side task to Analysis menu
- add JS9.RadialProfile(), and associated client-side task to Analysis menu
- reproject will try to bin large images to avoid memory limits
- add support for wcs-based cross-hair tracking of images
- add support for displaying mosaic images
- add CreateMosaic() public routine
- remove .fz suffix in various places where it breaks things
- fix bug where binning an image was not updating the CD matrix
- update emscripten to v1.38.5
- update socket.io to v2.1.1
Public Release 2.1 (May 10, 2018)
- allow JS9.SetPan() to accept a single object with x and y properties
- allow JS9.WCSToPix() to accept a single object with ra and dec properties
- allow JS9.PixToWCS() to accept a single object with x and y properties
- add support for Toolbar plugin
- add JS9.SetParam() and JS9.GetParam() public routines
- add JS9.SetToolbar() and JS9.GetToolbar() public routines
- add JS9.SeparateDisplay() public routine to separate images in a display
- add JS9.GatherDisplay() public routine to gather images into a display
- add JS9.LoadColormap() public routine
- add JS9.LightWindow() public routine
- JS9.GetImageData() now returns display size, bin factor
- JS9.RunAnalysis() return types now include "regions" and "catalog"
- include comments and history in display of FITS header
- iOS 11.2.2,5 disable wasm: github.com/kripken/emscripten/issues/6042
- add refresh property to JS9.Load() to re-retrieve data
- add support for refreshing a file/url in JS9.RefreshImage()
- add support for displaying full image to JS9.DisplaySection()
- add 'f' (full) and 'r' (refresh) keyboard actions
- change 'r' (raise region layer) to '^' in keyboard actions
- add refresh and section commands to Console plugin (and js9 script)
- binning plugin: add button to load full image
- sessions: save/re-run dataLayer routines (e.g. reproject, rotate)
- sessions: save/restore blend mode
- sessions: save/restore wcsim from reprojection
- sessions: save/restore display parameters
- SaveSession saves either current image or all images
- ensure correct extension for Save{Session,PNG,JPEG}
- image blending: update GUI when changes are made via API
- image blending: support sizing of static div
- fix imexam routines needing integer section limits
- update emscripten to v1.37.28
- update fabric.js to v1.7.22
- update contextMenu to v2.6.3
Minor Patch Release 2.0.2 (December 15, 2017)
- add zscale, zmax to SetScale()
- improve display-based routines (separate, gather, resize, center, select)
- improve alignment of differently sized images
- allow zoom during image blending
- add menu support for closing all images
- add support for selecting a target display in a supermenu
- add support for dispersing images from one display into new displays
- add support for gathering images from multiple displays into one
- add support for new image inheriting params from current image
- fix allinone (don't use wasm)
- fix bug loading wasm file in LoadWindow('new')
Minor Patch Release 2.0.1 (September 29, 2017)
- move helper log file outside www directory
- improve fetchURL() error messages
- fix bug in load catalog menu option
- allow json opts in Load* family of routines
- fix bug in JS9.Preload by saving a copy of opts
Public Release 2.0 (September 27, 2017)
- add support for emscripten-based WebAssembly
- add support for HPX projection
- add wcs selection menu to regions config dialog
- aesthetic improvements to regions config dialog
- fix race condition in Electron startup if not codesigned
- fix binning when manually specifying parent file
- fix wcs system display in infobox
- fix bug in js9Helper.js where localhost was not upgrading to use ws
- update emscripten to v1.37.20
- update fabric.js to v1.7.19
- update socket.io to v2.0.3
- update jquery to v3.2.1
- update jquery-ui to v1.12.1
Public Release 1.12 (July 25, 2017)
- refactor astroem to use astroem repository of emscripten library byte-code
- add DisplaySection() public routine
- add ability to extract a section from images (as well as tables)
- add fits2fits configuration params for large files support
- add large file support in which large files can be handled externally
- allow infoBox to be configured via JS9.globalOpts.infoBox and preferences
- add wcs center and wcs fov display to infoBox
- add js9.app Mac desktops to run js9 script (drag/drop images onto it, etc.)
- add support for specifying URLs on js9 command line (uses proxy load)
- JS9.Preload() will now call JS9.ProxyLoad(), if required
- proxy load now turned on by default (needed for Desktop use)
- add support for drag/drop URLs onto JS9 display (uses proxy load)
- add support for uploading FITS files to a remove server
- add support for displaying bzip2 files
- add support for drag drop of region, catalogs, sessions (by file extension)
- add text, fonts, stroke options to region configuration dialog box
- add support for specifying a text region as a child of a region
- add js9-to-ds9 region conversion to js9 script (-r)
- add support for importing ds9 regions, including properties in comments
- sort overlapping regions so smallest is on top
- fix memory leaks in mef support
- add Divs plugin to show/hide in-page JS9 plugin divs
- allow shape size controls to match shape color at border, corner, or both
- use file extensions when opening local files (fits, regions, catalogs, etc)
- add keyboard action to move selected region in back of other shapes (not a default)
- JS9.RegisterPlugins() will instantiate plugins if scripts load asynchronously
- add JS9.InstantiatePlugins() public routine
- deprecate auto load of js9Prefs.son (load js9prefs.js explicitly instead)
- update emscripten to v1.37.9
- update socket.io to v1.7.3 (big change in module directory structure)
Public Release 1.11 (January 9, 2017)
- add support for displaying HEALPix files
- add initial support for memory management of internal FITS files
- add menu support for clearing FITS files from internal memory
- add support for running JS9 on the Desktop using Electron.js
- integrate Desktop Electron support into into js9 script
- add ability to load local catalogs and save catalogs to disk
- add JS9.LoadCatalog() and JS9.SaveCatalog() public routines
- add Shape Layer plugin to turn on/off layers and set the active layer
- remove list of shape layers from View menu in favor of Shape Layer plugin
- add JS9.ActiveShapeLayer() public routine
- improve onimagedisplay processing for mef, cube, imarith plugins
- fix bug in cube plugin blink support
- update fabric.js to v1.6.6
- update socket.io to v1.5.1
- update closure-compiler to v20160911
Public Release 1.10 (October 11, 2016)
- add support for full-display mode
- add support for keyboard actions and shortcuts
- add JS9.SetRGBMode(), JS9.GetRGBMode() public routines
- unclutter the position/value display
- don't update value/position if "special key" is pressed
- buttons and menu/titlebars are now beautiful and Mac-like
- buttons can be beautiful and flat (change via class specification)
- add support for copying regions to another image (JS9.CopyRegions())
- add initial support for plotly plotting library
- improvements to energyplot, evfilter, binning plugins
- add support for alternate WCS (including JS9.GetWCS, JS9.SetWCS routines)
- add JS9.LookupImage() public routine
- generalize and extend plugin callback capability
- extend range of FITS files that can be WCS-projected using Montage
- add support in the File menu for saving and loading sessions
- add JS9.LoadSession() and JS9.SaveSession() public routines
- update imexam,fitsy, archive plugins
- update fabric.js to v1.6.3
- update cfitsio to v3.39
- update socket.io to v1.4.5
Public Release 1.9 (June 8, 2016)
- add standard RGB image processing functions to the Analysis menu
- add support for gesture-based zoom (scroll wheel and pinch)
- add MouseTouch plugin to change mouse/touch actions
- image id now contains extension name or number for FITS extensions
- add support for histogram equalization scaling
- add support in js9 script for starting up a browser/web page
- add support for displaying slices of a FITS data cube
- add support for image arithmetic (between 2 images or image & constant)
- add support moving images between JS9 displays
- add support for displaying HDUs in multi-extension FITS files
- add 'magma', 'inferno', 'plasma', 'viridis' colormaps from matplotlib
- deprecate the use of funtools when building JS9; please use cfitsio
Public Release 1.8 (March 21, 2016)
- add image blending plugin to support blending operations between images
- add ability to blend images using W3C composite/blending modes
- add colorbar plugin to display colormap vs intensity information
- add blink plugin to blink images
- add line region (with support for multiple line segments)
- add raw data layers to allow manipulation of underlying raw data
- add JS9.FilterRGBImage() to support RGB image processing routines
- add JS9.GaussBlurData public routine to perform Gaussian blur on data layer
- add JS9.RawDataLayer() public routine for raw data layer manipulation
- add JS9.ShiftData() public routine to shift raw data in x and y
- add JS9.GetDisplayData(), returning data for all images in a given display
- add JS9.SaveJPEG() public routine to save image and overlays as JPEG
- add JS9.AddColormap() public routine to add a colormap to JS9
- add JS9.SaveColormap(), JS9.OpenColormapMenu() public routines
- JS9.SavePNG() public routine now saves image and graphical overlays
- add support for reprojecting images using Montage/mProjectPP
- add JS9.Reproject() public access routine
- change menu option Color->alpha (0 to 255) to Color->opacity (0.0 to 1.0)
- fix bug when interactively changing panner for non-square images
- fix bug in lut colormap, which truncated the first color
- refactor emscripten astroem package into sub-packages
- update emscripten to v1.35.0
Public Release 1.7 (January 12, 2016)
- add Jupyter/IPython support for iframes
- add keyboard focus support for Jupyter/IPython
- add timeouts to avoid back-end connect() hangs
- add support for using rgb file as the display over a data file
- default helper is "none" (for Jupyter, where js9Prefs.json is not loaded)
- add lower right handle to change width and height of display
- add View menu option to change width and height of display
- add JS9.ResizeDisplay() to change the size of a JS9 display element
- add JS9.DisplayPlugin() public routine for custom menus
- add JS9.GetFITSHeader() (as a string) public routine for custom menus
- add resize handle to display (lower right corner)
- add View menu option to change the display width and height
- add support for handling group events in shape layers (i.e. catalogs)
- add support for handling mouse events in shape layers (i.e. catalogs)
- add support for tooltips to shape layers (i.e. catalogs)
- add return values to saveFITS() and savePNG()
- add spinner while waiting
- fix OpenFileMenu() and OpenRegionMenu() when using multiple displays
- fix text region printing
- fix bug in panner box when panner image does not fill panner width
- fix region configure to "delete" only itself (not all regions)
- fix one pixel bug in WCS region conversion
- update fabric.js to v1.5.0
- update socket.io to v1.3.7
- updated jquery to v1.11.3
Public Release 1.6 (November 7, 2015)
- add support for extracting image/table sections from "parent" files
- add JS9.LoadProxy() public routine to load FITS URLs via proxy server
- add support for loading Dropbox (and other CORS enabled) shared links
- add support for loading links by proxy through the back-end server
- add SetValPos and DisplayMessage public routines
- add options to create new JS9 windows from the file menu
- add experimental support for JS9 in an iframe, using postMessage
- remove starting "_" from SUPERMENU id (not legal syntax)
- fix various iOS foibles (scrolling, double-click to close)
- fix memory leak in cfitsio RefreshImage() support
- fix bug in lut colormap limit check
- fix bug in JS9.RefreshImage() blob handler
- fix overflow bug in cfitsio bscale/bzero support
- fix bug in zscale by properly exposing emscripten methods
- update emscripten to 1.34.1
- update wcs library to 3.9.0
Public Release 1.5 (July 9, 2015)
- add support for specifying regions using Funtools/DS9 syntax
- add support for loading Funtools/DS9 region files
- add support for running the Node.js helper using https protocol
Public Release 1.4 (May 3, 2015)
- add Preferences plugin to set image and region user prefs
- add ability to save image to FITS and PNG files (limited Safari support)
- add ability to save regions to a text file
- fix bugs in Binning plugin (mainly for cfitsio, but some general bug fixes)
Public Release 1.3 (March 30, 2015)
- add cfitsio library support to JS9 (emscripten compile to javascript)
- add data-width and data-height attributes to change the size of JS9 divs
- extend tpos and js9helper to use cfitsio (or funtools)
- update tpos js9Protocol to 1.1 to include header comments in the header
- default WCS is now determined in the browser, not by the back-end server
- ensure that section info is maintained during JS9.RefreshImage()
- prevent preload from happening more than once
- fix broken File->Open menu option
- update emscripten to v1.27, add new optimizations to astroem
Public Release 1.2 (January 4, 2015)
- concurrent release of pyjs9 1.0 on github
- update socket.io to the Engine.IO-driven v1.x (specifically v1.2.1)
- add ability to reconnect to node.js server automatically if latter restarts
- add support for specifying a temp work dir for back-end analysis
- add http support to js9Helper.js so messages can be sent via GET, POST
- JS9.Load: accepts FITS files as blobs and base64-encoded strings
- JS9.RefreshImage: accepts blobs (FITS files), js arrays and typed arrays
- JS9.GetImageData(): returned data can be array or base64-encoded string
- fix bug in arguments to public api routines sent via external message
- fix bug in File List: clicking on same file multiple times now redisplays
Public Release 1.1 (November 15, 2014)
- NB: api change: added errcode to argument list of RunAnalysis() callback
- new api: AddDivs() to add JS9 displays and/or plugins to the web page
- new api: Send() sends msgs programmatically (useful for 3rd party helpers)
- add support for super-menus that can control multiple JS9 displays
- add support for onload callback when displaying FITS files
- allow xcen, ycen (in image coords), zoom to be passed in obj to JS9.Load()
- re-factor js9Helper.js: each analysis task is its own top-level msg
- allow user-defined msgs to be added to analysis tasks more easily
- ensure correct region size during RefreshImage() and table binning
- add contour plugin to default plugins in js9plugins.js
- add checks for NaN values to imexam plugins
- fix imexam plugins bug when regions are rotated and resized
- fix bug in encircled energy preventing calculation for non-integer radii
- properly handle FITS TFORM cards without a repeat value (XMM data)
- resize regions properly when tables are binned by a block factor
- ensure that datamin and datmamax are updated when a binary table is binned
- don't send image notify events to back-end during contrast/bias changes
Public Release 1.0 (September 30, 2014)
- NB: change to the Public API: id is no longer first argument. See API doc.
- infobox plugin upgraded to a tabular display
- node.js server sends unique pageid back to JS9
- JS9 menus now cover light windows (higher zindex)
- improved accuracy of polygon points for contours
- moving a polygon point now calls listRegion
- added missing commas in WCS display of polygon points
- corrected WCS for drag/drop of sections of FITS binary tables
- fixed incorrect region size when binning FITS binary tables
- fixed memory leak in astroem reg2wcs routine
- plugin divs can now set height and width using CSS
- added defensive code to remove bash functions from CGI and node calls
- updated fabric.js to 1.4.11
Release 1-epsilon (July 28, 2014)
- JS9.Load() can now load FITS files directly (rather than converting to PNG)
- added support for FITS binary tables, including binning and filtering
- added support for gzip'ed FITS files
- added support for "physical" coordinates (i.e., tied to original data file)
- changed 2D graphics subsystem from Kinetic.js to fabric.js
- added generalized shape layer support for regions, catalogs, contours, etc.
- region context menu is now a light-weight web page with many new features
- added text and point regions
- position of a pixel is now in the center of the pixel
- accelerator key changed from shift key to meta key (command on Mac, control elsewhere)
- reduced number of js9 files to load in a web page
- redesigned and flattened returned region object
- redesigned public API
- changed Public routines JS9.Pix2WCS and JS9.WCS2Pix to be 1-indexed
- added ability to group and move regions
- box rotation is now around the center of the region
- all image coordinate are now 1-indexed throughout
- fixed bug where adding a polygon pt didn't show until region was selected
- changed polygon points to an array of objects {x, y} instead of just x, y
- fixed various layout bugs in plugins
- updated emscripten to latest version
- updated flot to latest version
- updated jquery to 1.11.1
Beta Release 13 (April 6, 2014)
- added support for handling NaN values
Beta Release 12 (March 10, 2014)
- added support for browser-based analysis via plugins (JS9.RegisterPlugin)
- converted Menubar, Info, Panner, Magnifier to plugins
- initial version of imexam plugin available (in plugins directory)
- initial version of archive/catalog server plugin available
- added support for zscale (IRAF min/max algorithm for scaling)
- added support for user scale limits
- regions can now be moved off the image
- shift key disables mouse plugin callbacks
- zooming a small image will use all of the available display canvas
- added support for sub-pixel zooming
- added ability to process all keys in keypress callback
- added arrow key support for moving regions
- added fractional pixel positions for zoomed images
- fixed bug which reset pan when changing colormaps on a zoomed image
- added strict mode
- update emscripten to 1.8.2
Beta Release 11 (December 18, 2013)
- initial port to iPad
- removed notifyHelper message when mouse enters image window
- fixed tpos crash when converting really large images
- updated jquery.contextMenu.js
Beta Release 10 (December 9, 2013)
- added support for RGB composite display
- added support for reading in auxiliary files via auxFiles preference
- added support for overlaying FITS image masks
- added support so that drag and drop files can be found by local analysis
- added analOpts.dataPath to specify where to look for drag and drop files
- box regions need to rotate around upper left point to ensure consistency
- changed name of fitshelper to js9helper
- changed JS9.submitAnalysis() to JS9.SubmitAnalysis()
- changed analOpts.datadir to analOpts.dataDir
- removed wcs event processing from node and CGI helper (use browser wcs)
- js9helper not run as a server from js9Helper.js any more (scales better)
- added ability to turn off redraw when creating a large number of regions
- fixed bug in panner display for non-square images
- added work-around for Google Chrome v31 bug (regions not drawn)
Beta Release 9 (October 23, 2013)
- added support for client-based WCS using emscripten 1.5.6
- added drag and drop of FITS images (binary tables are coming)
- added support for region callbacks (executed when a region changes)
- added JS9.Regions() public routine to retrieve and modify selected regions
- added Close Image button to File menu
- reduced size of panner when created by View menu
- updated Kinetic.js to v4.7.2
- minor bug fixes (e.g., annuli strokeWidth not resizing properly)
Beta Release 8 (September 23, 2013)
- fixed security in node.js support by requiring use of wrapper scripts
- added support for CGI-based back-end helpers
- implemented automatic discovery of analysis definitions
- added timer-based management of WCS update requests
- updated socket.io to 0.9.16
- changed routine name from JS9.preloadImages() back to JS9.Preload()!
Beta Release 7 (August 19, 2013)
- fits2png: added support for "%cookie" in odir specification
- js9.js and js9Helper.js both now use js9Prefs.json for setting preferences
- fixed bug in display/manipulation of panner when image is zoomed
- added "none" as an analysis return type to support hidden analysis
- changed routine name JS9.Preload() to JS9.preloadImages()
- added clipping to region manipulation
- fixed region strokewidth problem when zooming image
- fixed magnifier and panner where multiple instances of js9 are present
- numerous changes to pass new JSLint rules
- updated jquery to 1.10.2
- updated jquery.flot to 0.8.2
- removed references to of jquery-ui in demo files (its not used)
Beta Release 6 (July 22, 2013)
- added support for panner window, including ability to zoom the panner
- added support for magnifier window, including ability to change magnification
- implemented zoom menu (zoomIn, zoomOut, zoom1, zoom2, zoom4, zoom8)
- added support for all FITS data types (silrd) in js9.js and tpos.c
- png file now contains FITS header in json format
- NB: the format of the PNG representation file has changed substantially!
- raw arrays now implemented as a typed array, using DataView to unpack it
- updated Kinetic.js to v4.5.4 (multiple changes required to code)
Beta Release 5 (May 20, 2013)
- added support for dynamic creation of js9 instances (new or light window)
- added support for pre-loading images into a js9 on page load
- added support for running analysis web page buttons, forms, etc.
- added support for printing the image
- added new demo pages
- changed js9msg script name to js9
- loading javascript files is "generic" (no version numbers in filenames)
- updated Kinetic.js to v4.5.1
Beta Release 4 (April 26, 2013)
- added support for polygon regions
- added support for fixing (i.e. freezing) regions in place
- added support for container regions (constrain position of other regions)
- added support for shift key accelerator
- fixed multiple bugs in region listOnChange support
- updated Kinetic.js to v4.4.3
Beta Release 3 (April 2, 2013)
- updated Kinetic.js to v4.4.0 to fix new chrome v26.0.1410.43 (whoah!)
Beta Release 2 (April 1, 2013)
- added support for executing analysis from console window
- added support for messaging to js9 via Node-based js9Msg.js
- added ability to specify params to region creation
- added server mode and input from stdin to js9Msg.js
Beta Release 1 (February 27, 2013)
- initial beta release with support for displaying FITS images, scaling,
colormaps, external analysis, regions, wcs