WebHare community

WebHare 4.26 released

We didn’t announce 4.25, so here are the combined release notes for both versions

Incompatibilities and deprecations

  • WebHare will not run when /opt/whdata is an overlayfs volume unless you explicitly set WEBHARE_ALLOWEPHEMERAL=1
  • Support for <member publish=true /> will be removed in a future version as it causes excessive database traffic when
    calling GetInstanceData. If used, it will generate a warning in siteprofiles. On development servers all link
    fields (which are normally a STRING) will be replaced by a CELL[ linkisobsolete := FALSE ] to ensure any code accessing
    it as a string will fail
    • we could have removed it or made it a default value, but we need [if link][link][/if] to fail
    • note that simply wrapping an image record in WrapCachedImage(img, [method := "none"]) will satisfy a lot of old
      code that only expected width, height and link to exist
  • Support for <dynamicexecution/> in <apply> rules has been removed. It was confused when dealing with content links
    and never worked right if you didn’t also set the filetype to dynamicexecution.
  • The deprecation scanner has been removed
  • <vmrights> is no longer allowed in XML files (it hasn’t been supported for years)
  • EncryptForCluster and DecryptForCluster have been removed
  • Support for HTML posts in the formsapi has been removed. All formsapi forms must submit through XHR
  • Support for native HTML5 validation has been deprecated and will no longer be tested. All formsapi forms should move to standard validation
  • We are considering deprecating and removing prebuilt file types. Avoid using them in new projects and use %ConvertPrebuiltFiles to clean up
    existing instances at some point.
  • mod::system/lib/addons/geoip.whlib has been removed - see mod::publisher/lib/analytics.whlib for GeoIP APIs.

Things that are nice to know

  • <richdocument> now supports a margins=none|compact|wide to give more control over the horizontal margins used
  • <rtddoc> supports margins=none|compact|wide too. This setting will be used by the Publisher documenteditor
  • Reflect now has a return value so it can be used in an expression. It will simply return whatever was passed to it
  • You can now use domain tags as a value in WRD query filters (you can replace domainvaluetag with value)
  • capturesubpaths= is now compatible with isacceptableindex=. If you start using this, make sure your subpath handler
    properly returns a 404 code for all unknown URLs or you will break the URL History for that folder. Your users will
    also need to understand that anything they create in the same folder will override your capturing file.
  • Setting a form <select> pulldown placeholder from HareScript fixed for statically created selects.
  • API added to send SMS messages using AWS.
  • <template>.content has been added to the global polyfill, so you can use .cloneNode on it in IE11.
  • ‘Run from sublime’ now accepts defaults arguments for scripts by putting them in an ‘.args’ file
  • Added support for Elasticsearch index definitions in module defintions.
  • The new Tollium component <url> allows a disabled copy-pasteable view of a URL, with explicit Copy and QR Code buttons
  • You can now generate SCSS variables from a JSON file by @import-ing it
    • see settings.json in tollium defining tollium_grid_vsize which is then shared with support.js
    • @mod-.... paths are not yet supported, you need to use relative paths to the JSON file (we may fix this in the future,
      eg using the resolver added in https://github.com/Updater/node-sass-json-importer/pull/71)
  • You can now disable wordwrap on Tollium <textarea>s. Useful for eg. DNS configuration data which should not wrap
  • Tollium <textarea>s without an explicit width= will now suggest to be 30 instead of 2characters wide, just like <textedit>,
    fixing dialogs with only a textarea from getting very small
  • Tollium <image> now supports objectfit.
  • %GenerateXLSXFile wraps XLSX generation in a format compatible with %RunColumnFileExportDialog
  • WebHare will now ensure that /webhare-private/<modulename>/ exists for every module.
  • You can now ‘login as’ a role in WebHare’s user management
  • webdesign->structuredbreadcumb contains auto-generated breadcrumb data
  • If webdesign->structuredbreadcumb is set, we will automatically include it as structured LD+JSON metadata

Things you should do

  • The margins and positions of widgets have been updated, this may cause issues if you’ve overridden the margins for
    html and/or body for the RTD editor. If you need, you can test for the wh-rtd--margins-wide, wh-rtd--margins-compact
    , wh-rtd--margins-none and/or wh-rtd--margins-active classes on the pseudo-html element to see which margin mode is in
    effect. You can also use this to test for a pre-4.25 WebHare (just check for either wh-rtd--margins-active or wh-rtd--margins-none)
  • Use %OpenWHFSPrivateFolder to find /webhare-private/<your module>/ (and never hardcode object id 10), and stop
    using EnsureFolder to create this toplevel folder to reduce race conditions during module activation.
  • If you’ve added your own schema.org BreadCrumb data, you may want to suppress the 4.26 generated breadcrumbs.
    See 4.26 will introduce automatically generated breadcrumbs
  • CreateSubField is a cleaner way to create form subfields as compared to AppendFormField which turned out to be
    error-prone and did not fully support array subfields.
    Replace the pattern this->form->AppendFormField(this, "textedit", this->name || ".sub") with this->CreateSubField("textedit", "sub")