Hi,
Version 1.5 of the Cargo extension has been released. This is a big release because it solves, or at least is intended to solve, the two big problems that have been experienced by (some) Cargo users: a painfully slow "recreate table" process for data tables that are very large, and duplicate data showing up within tables. These two problems are actually tied in with one another somewhat, in that a slow recreate process has caused some admins to press the "recreate data" button more than once, which in turn causes data duplication to happen (which then in turn makes another "recreate data" call necessary, which can cause even more problems).
Version 1.5 contains the following changes and additions:
- Now, by default, recreating a Cargo table puts all the new content into a "replacement" table, which can be viewed but is not yet used for querying. Then, only when the administrator is ready to switch, the old/current table gets deleted and the new one gets replaced in. In this way, functionality on the site is never harmed while data is being recreated.
Note that MediaWiki's update.php must be called for this new functionality to appear, since it required a small database change.
- In order to avoid duplicate rows, the software now checks every row about to be added to a table to make sure it doesn't match some existing row
- There were a number of improvements made to the "calendar" display format, which in turn uses the FullCalendar JavaScript library:
- In the upcoming version 1.30, MediaWiki switched from jQuery 1 to jQuery 3. It looks like there is no one version of FullCalendar that works with both, so Cargo now contains two copies of FullCalendar, at different versions, with the one used depending on the jQuery/MW version.
- Most of the text displayed in the calendar, like month names, was hardcoded in English; the code now uses FullCalendar's own "locale" handling to display the right text. FC's internationalization support is not nearly as comprehensive as MediaWiki's - it supports 50 instead of 200 languages - but it has support for things like deciding what the first day of each week should be based on the language, and was in general a lot easier to implement. Eventually it will be good to switch to using MediaWiki's i18n.
- Events that have both a start and end time set now have both times displayed on the calendar, instead of just the start time; the default FullCalendar behavior is to just show the start time, for some reason.
- Calendar week and day displays were made more detailed, with an "agenda" view.
- A "list" view was added, in addition to the "month", "week" and "day" views; although it only shows up with MediaWiki 1.30 and higher.
- The _fileData table, which holds information on every uploaded file, now contains two additional possible fields: _lastUploadDate and_numPages (the latter is only stored for PDF files). Thanks to Paul Troughton for help with these.
- There was a bug where the standard _pageNamespace field in tables could not be displayed in queries; this has been fixed.
- There was a fix for the display of list fields where the delimiter is ";" and one or more values contain quotation marks.
- There was a fix for the parsing of queries containing "WITHIN", a keyword added in Cargo 1.4; thanks to Feroz Ahmed for this.
- Many of the PHP files were moved into a new /includes directory.
- Many error messages which were hardcoded in English are now translated.
You can read more about Cargo, and download the new version, here:
https://www.mediawiki.org/wiki/Extension:Cargo
-Yaron