Category:Cumulus MX: Difference between revisions

631 bytes added ,  11:25, 23 July 2020
m
Line 610: Line 610:
== Library software for admin interface ==
== Library software for admin interface ==


#'''Alpaca'''
===Alpaca===
#*Alpaca software is effectively a programming language extension to help people design forms like those MX uses for all its settings, and as a Cumulus user you really don't need to worry about it.
 
#*It is used for most settings screens. See http://www.alpacajs.org/ for more information. The latest version there is 1.5.27 released on 14 May 2019.
#Alpaca software is effectively a programming language extension to help people design forms like those MX uses for all its settings, and as a Cumulus user you really don't need to worry about it.
#* MX uses Alpaca Release 1.1.3 from https://github.com/gitana/alpaca which was on 15 May 2014, although some individual components have been updated on that github, and others.
#It is used for most settings screens. See http://www.alpacajs.org/ for more information. The latest version there is 1.5.27 released on 14 May 2019.
#'''Bootstrap'''
# MX uses Alpaca Release 1.1.3 from https://github.com/gitana/alpaca which was on 15 May 2014, although some individual components have been updated on that github, and others.
#*Also known by some as ''Twitter Bootstrap'' which gives a clue as to its origins as an internal tool for those building Twitter, that company still keep making updates as it is now the most popular styling library of all those available widely.
 
#*The simplest way to think about this package is as a standard set of styling promoting easy responsive (means adapts to screen dimensions) web site design.
===Bootstrap===
#*To give just a few examples, it defines a standard way to represent buttons, form components, lists, navigation, and breadcrumbs.
 
#*MX uses Bootstrap v3.3.7 (http://getbootstrap.com), which is very restricted in what it offers compared to the current Bootstrap version 4.5.0 (Bootstrap 4 released as alpha in August 2015, beta in August 2017, and with fully working releases frequently from January 2018 has been very widely praised for its improved functionality, and ability to work with latest jQuery and multiple modern devices/browsers).   
#Also known by some as ''Twitter Bootstrap'' which gives a clue as to its origins as an internal tool for those building Twitter, that company still keep making updates as it is now the most popular styling library of all those available widely.
#*MX does not implement colouring text according to what it represents (primary, secondary, information, warning etc.), nor does MX obey modern HTML standards as it makes no provision for screen readers and other accessibility aids.
*The simplest way to think about this package is as a standard set of styling promoting easy responsive (means adapts to screen dimensions) web site design.
#'''dataTables'''
*To give just a few examples, it defines a standard way to represent buttons, form components, lists, navigation, and breadcrumbs.
#*When MX sends out multiple lines of a log file to view or edit, the application programming interface (api) that transfers the information from the MX engine sends it in dataTables format for display on the web page in the admin interface.
*MX uses Bootstrap version 3.3.7 (http://getbootstrap.com), which is very restricted in what it offers
#*Thus dataTables does all the work of providing the ability to move between multiple pages needed to allow MX to just send 10 lines of a log file at a time to the admin interface.
** The current Bootstrap version 4.5.0 (Bootstrap 4 released as alpha in August 2015, beta in August 2017, and with fully working releases frequently from January 2018) has been very widely praised for its improved functionality, and ability to work with latest jQuery and multiple modern devices/browsers.   
#*The free version of dataTables used by MX lacks the most useful functionality that needs a subscription licence. For example, editing functionality requires a subscription.
*MX does not implement colouring text according to what it represents (primary, secondary, information, warning etc.), nor does MX obey modern HTML standards as it makes no provision for screen readers and other accessibility aids.
#'''altEditor'''
 
#*This is an editing tool that can read what is in dataTables, create what it calls a modal (a pop-up dialog) where rows can be added, edited or deleted individually.
===dataTables===
#** MX when it added editing of log files at version 3.4.5 - Build 3069 (Friday 13 March 2020) adopted this software as it was free (although Mark Crossley said in his release notice: "The main thrust of this release is to add some log file editing capability to Cumulus MX.  It works on all three log file types, but it is fairly basic at present. You can edit or delete lines in the files.  The editing has to be done via pop-up dialog. I only found two libraries that support JQuery dataTables editing, one is very comprehensive - but costs $$$ - the other is free.  The free version does not currently support in-line editing of the table which is a shame.  If any web guru out there can come up with a better solution please post about it on the forum, or send a pull request."
#When MX sends out multiple lines of a log file to view or edit, the application programming interface (api) that transfers the information from the MX engine sends it in dataTables format for display on the web page in the admin interface.
#**The single line of fields that is result of an edit or deletion done on the modal is sent back via another api to the server (the MX engine in our case) and that then regenerates the dataTables in the state after whatever action was done, sending back again up to 10 lines for the same page as before.
#Thus dataTables does all the work of providing the ability to move between multiple pages needed to allow MX to just send 10 lines of a log file at a time to the admin interface.
#*As it happens there is another JQuery dataTables editing tool, but it has not been maintained since 2012. It is found at https://github.com/NicolasCARPi/jquery_jeditable, but the documentation is now only available in an archive at https://web.archive.org/web/20200615000000*/https://appelsiini.net/projects/jeditable.  It is designed for editing table cells, so it does not involve any pop-up dialog.
#The free version of dataTables used by MX lacks the most useful functionality that needs a subscription licence. For example, editing functionality requires a subscription.
#'''datepicker'''
 
#*Although modern browsers generally will generate a calendar type interface when they meet an entry field defined as a date, this date picker software ensures all MX users see exactly the same interface for date selection needed for both the standard log and the extra sensors log which are monthly log files (a new one is created each month). It is used for picking which standard (monthly) log or extra (monthly) log is to be viewed by selecting a month and year only.
===altEditor===
#*It is also used for selecting individual days in the weather diary editor.
 
#'''editable grid'''
*This is an editing tool that can read what is in dataTables, create what it calls a modal (a pop-up dialog) where rows can be added, edited or deleted individually.
#*As the name perhaps suggests MX only uses this for the extra web files screens where you can make selections within a grid like interface.
** MX when it added editing of log files at version 3.4.5 - Build 3069 (Friday 13 March 2020) adopted this software as it was free (although Mark Crossley said in his release notice: "The main thrust of this release is to add some log file editing capability to Cumulus MX.  It works on all three log file types, but it is fairly basic at present. You can edit or delete lines in the files.  The editing has to be done via pop-up dialog.  
#*I suspect it could enhance some other functionality in the future.
**I only found two libraries that support JQuery dataTables editing, one is very comprehensive - but costs $$$ - the other is free.  The free version does not currently support in-line editing of the table which is a shame.
#'''handlebars'''
** If any web guru out there can come up with a better solution please post about it on the forum, or send a pull request." (By the way, it is possible to provide in-line editing and make it work with the existing api interface, but making it compatible with the obsolete software used by MX is hard).
#*Put simply this is a simple HTML generator based on templates.
*The single line of fields that is result of an edit or deletion done on the modal is sent back via another api to the server (the MX engine in our case) and that then regenerates the dataTables in the state after whatever action was done, sending back again up to 10 lines for the same page as before.
#*I have not found any file in the admin interface actually using this, but I am scared to delete it just in case it stops something working.
*As it happens there is another JQuery dataTables editing tool, but it has not been maintained since 2012. It is found at https://github.com/NicolasCARPi/jquery_jeditable, but the documentation is now only available in an archive at https://web.archive.org/web/20200615000000*/https://appelsiini.net/projects/jeditable.  It is designed for editing table cells, so it does not involve any pop-up dialog.
#'''jQuery'''
 
#*The admin interface uses version 1.9.1 of this javaSript based library. At the time of typing this, the current jQuery is version 3.5.1.
===datepicker===
#*Of all the old versions of jQuery, only one version, 1.9.1, has a serious error in its code, because it tries to load another script that does not match, and therefore the authors of jQuery strongly advise all 1.9.1 users to move to a later version.
 
#*Unfortunately, there are interdependencies between all the library code used by MX, so you cannot simply update this component.
#Although modern browsers generally will generate a calendar type interface when they meet an entry field defined as a date, this date picker software ensures all MX users see exactly the same interface for date selection needed for both the standard log and the extra sensors log which are monthly log files (a new one is created each month). It is used for picking which standard (monthly) log or extra (monthly) log is to be viewed by selecting a month and year only.
#'''SteelSeries'''
#It is also used for selecting individual days in the weather diary editor.
#*MX uses a hacked version of the [[SteelSeries Gauges|steel series]] library described elsewhere for all the gauges (see dashboard and gauges tabs) in MX.
 
#'''x-editable'''
===editable grid===
#*Put simply, this allows in-place editing of web pages using bootstrap.
 
#*In MX it is used for the record editing screens where you adjust the extreme values.
*As the name perhaps suggests MX only uses this for the extra web files screens where you can make selections within a grid like interface.
*I suspect it could enhance some other functionality in the future.
 
===handlebars===
 
#Put simply this is a simple HTML generator based on templates.
#I have not found any file in the admin interface actually using this, but I am scared to delete it just in case it stops something working.
 
===x-editable===
 
*Put simply, this allows in-place editing of web pages using bootstrap.
*In MX it is used for the record editing screens where you adjust the extreme values.
 
===jQuery===
 
#The admin interface uses version 1.9.1 of this JavaScript based library.
#* At the time of typing this, the current jQuery is version 3.5.1.
# Of all the old versions of jQuery to choose, MX has picked the only version that the developers withdrew due to an error when they released it.
# Version 1.9.1, has a serious error in its code, because the developers accidentally combined code from two significantly different versions when they created the release file.
#*This reveals itself in two ways:
#*# The error handling does not work.
#*# It tries to load another script that does not match.
# Consequently, the developers quickly removed it, but it remained available from Contents Delivery Nodes, which is where MX has found it.
# Not surprisingly, the authors of jQuery strongly advise all 1.9.1 users to move to a later version.
#* Unfortunately, there are interdependencies between all the library code used by MX, so you cannot simply update this component.
 
===SteelSeries===
 
MX uses a hacked version of the [[SteelSeries Gauges|steel series]] library described elsewhere for all the gauges (see dashboard and gauges tabs) in MX.
 
 
 
===Highstocks===


The odd one out is '''Highstocks''' (that includes HighCharts)
The odd one out is '''Highstocks''' (that includes HighCharts)
5,838

edits