Changes between Initial Version and Version 1 of BluePrint/GIS/2.0


Ignore:
Timestamp:
09/19/21 15:21:36 (4 years ago)
Author:
Fran Boon
Comment:

Initial version

Legend:

Unmodified
Added
Removed
Modified
  • BluePrint/GIS/2.0

    v1 v1  
     1= GIS module for Sahana Eden 2.0 =
     2
     3The core !JavaScript Mapping Library that we use is still [https://openlayers.org/two/ OpenLayers 2.x][[BR]]
     4This is very old and we would benefit from upgrading to the [https://openlayers.org/ current 6.x release]
     5- no need to maintain the old one for browser changes (Just 1 instance of that so far: )
     6- we can take advantage of new features & performance upgrades (like [https://openlayers.org/en/latest/examples/tilejson.html TileJSON])
     7At the core this isn't too hard and [https://github.com/sahana/eden/blob/master/modules/s3/s3gis.py#L7396 much progress has already been made] (& UCCE already uses OL5 within the DC Editor)
     8The big issue is the User Interface, especially for the main map.
     9This is currently built on [https://geoext.org/v1/ GeoExt 1.1] & !ExtJS 3.4.
     10The obvious solution would be to upgrade to the [https://geoext.github.io/geoext/ current GeoExt], and hence [https://docs.sencha.com/extjs/6.2.0/index.html ExtJS 6.2], however that version of ExtJS is no longer available and has [https://www.sencha.com/legal/gpl/ strict GPL licensing] around it, which doesn't really make it suitable for us.[[BR]]
     11!GeoExt are also not moving very fast and a dependency on that seems unwise if we're making a big change anyway.[[BR]]
     12Although we could bring in the !GeoExt code that we use and maintain it ourselves (it is BSD-licensed), it depends on !ExtJS, which is not, so this isn't really an option.[[BR]]
     13So what UI toolkit should we use instead?[[BR]]
     14An obvious option would be [https://jqueryui.com/ jQueryUI], since we already use that extensively for custom widgets in Eden, and we already use the widget factory for our [https://github.com/sahana/eden/blob/master/static/scripts/S3/s3.ui.gis.js OL6-version of the Map][[BR]]
     15Although it hasn't received many upgrades recently, it is still maintained with a [https://blog.jqueryui.com/2021/09/jquery-ui-1-13-0-rc-2-released/ new release coming soon].
     16It has limited Widgets available: Buttons, Dialog, Menus, Tabs all there, but no Toolbar (we can probably use Controlgroup for this) Panels or Tree (using [https://www.jstree.com/ JSTree] seems the right approach here, as we already use this elsewhere & it's well-maintained).
     17We can also see about bringing in components from [https://github.com/primefaces/primeui PrimeUI]...that isn't maintained, however the Apache 2 license means we can take anything we want from there.
     18
     19There are other options which we could consider:
     20* !VueJS
     21 * Basic Tree example: https://v3.vuejs.org/examples/tree-view.html
     22 * !PrimeVue has widgets: https://primefaces.org/primevue/
     23* Angular
     24 * !TypeScript-only :/
     25* !BackBone/Mustache
     26* !BluePrint
     27 * https://blog.palantir.com/scaling-product-design-with-blueprint-25492827bb4a
     28 * looks good, but Palantir :/ & no Mobile :/ & TS :/
     29* Ember
     30* Lit (lightweight web components)
     31* React
     32 * https://react-md.dev/packages/tree/demos
     33* [https://webix.com Webix]
     34 * GPL, but can be combined with MIT
     35 * Has a Tree