User Tools

Site Tools


scratchpad:dojo_upgrade_notes

Dojo Upgrade Notes

These notes are observations about what needs/can be changed upon upgrading dojo versions, as well as pitfalls that may be encountered. Anyone else with ideas/propositions is welcome to edit.

Dojo 1.4.*

Evergreen Specific Changes

  • Dojo 1.4.* includes dijit.Calendar, after converting we should be able to remove jscalendar (/Open-ILS/web/opac/common/js/jscalendar) which includes 74 files at 6760 lines of code (300kb) and will properly style to the chosen dijit theme unlike the jscalendar.
  • It is probably prudent to upgrade all instances of dojo.Grid to dojox.EnhancedGrid to allow easy multiple column sorting if not they should be replaced by dojox.Grid.DataGrid.

Upgrade Notes From Dojo

  Upgrading
  
  Here are some common issues people have had when upgrading (ie, migrating) from 1.3 to 1.4:
  
  1. If your widgets are using templatePath you should ideally update them to use templateString with dojo.cache()
     instead, or alternately, minimally, make sure that they set templateString to null (to override the templateString
     setting from a superclass).
  
  2. ContentPane acts more as a layout widget than before, defining isLayoutContainer: true. This may break some custom 
     subclasses.
  
  3. The startup code for widgetsInTemplate has changed; if you have a custom widget that manually adds sub-widgets into 
     its DOM, be sure to add those sub-widgets to this._startupWidgets[] and also this._supportingWidgets[]. Alternately 
     you can set _earlyTemplatedStartup to true to get the 1.3 behavior
  
  4. If your TabContainer is too wide (you must have set width=100% in your markup?), specify 
     controllerWidget=”“dijit.layout.TabController” (see Ticket #10495).

Widgets to Check Upon Upgrade

In order to have a successful Dojo upgrade these widgets must be tested and working. These files that contain these widgets, along with files that depend upon the widgets (very useful for testing), can be found using the web reporter script (poirot.py).

  • DojoSRF
  • MARC.Batch
  • MARC.Field
  • MARC.Record
  • OpenSRF
  • fieldmapper.AutoIDL
  • fieldmapper.Fieldmapper
  • fieldmapper.IDL
  • fieldmapper.OrgUtils
  • fieldmapper.dojoData
  • fieldmapper.hash
  • openils.BibTemplate
  • openils.CGI
  • openils.CopyLocation
  • openils.DojoPatch
  • openils.Event
  • openils.FeedTemplate
  • openils.GridColumnPicker
  • openils.I18N
  • openils.MarcXPathParser
  • openils.PermGrp
  • openils.PermaCrud
  • openils.PermaCrud.Store
  • openils.User
  • openils.Util
  • openils.XUL
  • openils.acq.CurrencyType
  • openils.acq.Fund
  • openils.acq.FundingSource
  • openils.acq.Lineitem
  • openils.acq.LineitemAttr
  • openils.acq.PO
  • openils.acq.Picklist
  • openils.acq.Provider
  • openils.editors
  • openils.widget.AutoFieldWidget
  • openils.widget.AutoGrid
  • openils.widget.AutoWidget
  • openils.widget.EditDialog
  • openils.widget.EditPane
  • openils.widget.FacetSidebar
  • openils.widget.FacetSidebar.facetClass
  • openils.widget.FacetSidebar.facetField
  • openils.widget.FilteringTreeSelect
  • openils.widget.FundSelector
  • openils.widget.GridColumnPicker
  • openils.widget.HoldingCode
  • openils.widget.OrgUnitFilteringSelect
  • openils.widget.PCrudAutocompleteBox
  • openils.widget.PCrudFilterDialog
  • openils.widget.PermGrpFilteringSelect
  • openils.widget.ProgressDialog
  • openils.widget.ProviderSelector
  • openils.widget.Searcher
  • openils.widget.Searcher.classedSearch
  • openils.widget.Searcher.facetedSearch
  • openils.widget.Searcher.filter
  • openils.widget.Searcher.modifier
  • openils.widget.StandingPenaltyBlockedSelector
  • openils.widget.Textarea
  • openils.widget.TranslatorPopup
  • openils.widget.XULTermLoader
scratchpad/dojo_upgrade_notes.txt · Last modified: 2022/02/10 13:34 by 127.0.0.1

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki

© 2008-2022 GPLS and others. Evergreen is open source software, freely licensed under GNU GPLv2 or later.
The Evergreen Project is a U.S. 501(c)3 non-profit organization.