CallBackery

 view release on metacpan or  search on metacpan

CHANGES  view on Meta::CPAN

0.60.0 2026-08-27 08:42:19 +0200 Tobias Oetiker <tobi@oetiker.ch>

 - Excel export: new makeExportAction option "extraCols" adds generated
   columns to an XLSX export. The only type so far is "qrCode", which
   embeds the content of a selectable field as a QR code image. The
   content comes from a table key or a code reference, the column is
   placed after its source column or at an explicit insertAfter index,
   and label and size are configurable. Needs Text::QRCode, which is
   loaded only when such a column is exported. CSV exports ignore the
   option.

 - CallBackery::GuiPlugin::AbstractTable used Mojo::Asset::Memory
   without loading it, and only worked because Mojolicious happened to
   have loaded it already.
0.59.0 2026-08-20 08:58:50 +0200 Tobias Oetiker <tobi@oetiker.ch>

 - New optional actionCfg property "noBusyIndicator" for download and
   display actions. When set, the modal busy indicator ("Preparing
   Download ...") is not shown while the download is being prepared, so
   the gui stays usable for actions which take a long time to produce
   their data. Default behaviour is unchanged.

0.58.4 2026-07-31 16:15:51 +0200 Tobias Oetiker <tobi@oetiker.ch>

 - Frontend ui.Login: a login could be lost outright. The credentials
   were copied into the hidden iframe form that exists only to make the
   browser offer to save the password, and that copy ran before the
   login call, unguarded. The iframe reloads /login every time the login
   window appears, so whenever that fetch had not completed yet -- a
   busy server is enough -- getElementById returned null, the handler
   threw on it, and the login request was never sent. The form had
   already disabled itself, so it just sat there greyed out with nothing
   on screen to explain it, and only a reload got the user out of it.
   The password manager hand-off now happens after a successful login
   and is fully guarded, so it can miss the save prompt but can no
   longer come between the user and their session.

0.58.3 2026-07-30 16:11:29 +0200 Tobias Oetiker <tobi@oetiker.ch>

 - Config: restoring a configuration blob replaced the configuration
   database file, giving it a new inode. Every connection open at the
   time stayed attached to the old, now unlinked file: it went on
   reading the pre-restore configuration and failed on its first write
   with SQLITE_READONLY_DBMOVED, which SQLite reports as "attempt to
   write a readonly database". With a prefork server and background
   helpers that is most of the processes on the machine. The
   replacement database is now built beside the live one and copied in
   with SQLite's online backup API, so the inode is preserved and open
   connections simply see the restored data. If the write lock cannot
   be had within 30 seconds the restore now gives up with an error and
   leaves the database untouched, rather than restoring it half way.

0.58.2 2026-07-20 12:54:27 +0200 Tobias Oetiker <tobi@oetiker.ch>

 - Frontend ui.plugin.Form: make sure trigger load does not overwrite
   fix for automated testing which fills forms very quickly

0.58.1 2026-07-16 08:39:18 +0200 Tobias Oetiker <tobi@oetiker.ch>

 - Frontend ui.plugin.Form: a trigger-field change made while form data
   was still loading parked its form reconfiguration in _reconfPending
   and never sent it — the affected form stayed in its stale layout
   (e.g. fields that the reset should reveal never appeared) until the
   user toggled the trigger field again. The pending queue is now
   drained when loading completes.

0.58.0 2026-07-15 17:23:33 +0200 Tobias Oetiker <tobi@oetiker.ch>

 - Session expiry now surfaces as a dedicated RPC code 7 ("session
   expired"), distinct from code 6 ("login required"). allow_rpc_access
   guards plugin instantiation so an expired session no longer escapes as
   a generic error. CallBackery::User gains a per-request `sessionExpired`
   flag for subclasses that enforce a cookie max-age.

 - Frontend data.Server: session expiry shows a single deduplicated
   "Session Expired -> Reload" prompt instead of a storm of error popups.
   Communication failures (server unreachable / proxy returning garbage)
   now retry silently for idempotent reads, then show one "Connection
   problem" dialog with Retry / Reload. MsgBox gains reload/retry buttons.

0.57.0 2026-06-16 08:58:42 +0200 Tobias Oetiker <tobi@oetiker.ch>

 - We are on JSON-RPC 2.0 now. callbackery.data.Server now uses
   qx.io.jsonrpc.Client (qooxdoo 7.x) instead of the deprecated
   qx.io.remote.Rpc. 

   Serverside we have switched to JSON-RPC 2.0 dispatch by the grace
   of Mojolicious::Plugin::Qooxdoo >= 1.1.0,
   which auto-detects qx1 vs 2.0 requests.

CHANGES  view on Meta::CPAN


0.56.7 2026-03-19 17:46:23 +0100 Tobias Oetiker <tobi@oetiker.ch>

 - protect $self->controller->runEventActions('changeConfig'); in
   GuiPlugin/Abstract.pm from missing controller case

0.56.6 2025-11-04 15:41:29 +0100 Tobias Oetiker <tobi@oetiker.ch>

  - complete fr.po and it.po files

0.56.5 2025-09-30 17:01:56 +0200 Tobias Oetiker <tobi@oetiker.ch>

 - blank out formData when there is only parentform data in the args

0.56.4 2025-09-16 11:49:50 +0200 Tobias Oetiker <tobi@oetiker.ch>

 - add mocks for mayAny, userId and userInfo for better compatibility

0.56.3 2025-09-16 11:25:45 +0200 Tobias Oetiker <tobi@oetiker.ch>

 - activate signatures in abstractaction

0.56.2 2025-09-16 11:16:51 +0200 Tobias Oetiker <tobi@oetiker.ch>

 - move all user magic to AbstractAction.pm
 - undefine user after Massage Config

0.56.1 2025-09-15 23:41:28 +0200 Tobias Oetiker <tobi@oetiker.ch>

 - set args/formData in the validation phase too
 - fix formData to report data even when there is no selection

0.56.0 2025-09-05 15:52:10 +0200 Tobias Oetiker <tobi@oetiker.ch>

 - the GuiPlugin user property is now always defined
   and provides a may method which allows everyone
   access. This makes sure that during startup
   the config system can get all plugins from actionCfg
   lists. You do not have to take special care anymore
   return [] unless $self->user->may('admin');
   is fine now!

0.55.4 2025-09-02 15:12:22 +0200 Tobias Oetiker <tobi@oetiker.ch>

 - hide the download activity indicator after 3 seconds

0.55.3 2025-08-25 16:37:31 +0200 Tobias Oetiker <tobi@oetiker.ch>

 - fix spelling Runnning -> Running

0.55.2 2025-06-12 17:35:56 +0200 Tobias Oetiker <tobi@oetiker.ch>

 - fix fake login page format

0.55.1 2025-06-12 17:28:21 +0200 Tobias Oetiker <tobi@oetiker.ch>

 - properly close the popup after download if so configured

0.55.0 2025-06-12 15:24:25 +0200 Tobias Oetiker <tobi@oetiker.ch>

 - download displays a busy message which can be configured using
   busyMessage property
 - upon download completing popup will close if closeAfterDownload => true,
   is set

0.54.0 2025-06-12 14:52:06 +0200 Tobias Oetiker <tobi@oetiker.ch>

 - upload actions are now busy during upload
   use the busyMessage property to display a custom message during upload

0.53.1 2025-06-04 18:04:46 +0200 Tobias Oetiker <tobi@oetiker.ch>

 - only log slow getters
 - download cookies should be valid for 30s

0.53.0 2025-04-09 14:06:53 +0200 Tobias Oetiker <tobi@oetiker.ch>

  - AbstractForm: add formData and formPhase subs.
                  Use signatures and cleanup parameter names.

0.52.0 2025-03-24 11:18:49 +0100 Tobias Oetiker <tobi@oetiker.ch>

  - Make CardList return the parentFormData. Deprecate allCardData(),
    use getAllCardData() instead.

0.51.0 2025-03-13 17:19:07 +0100 Tobias Oetiker <tobi@oetiker.ch>

 - add info box for card list. see GuiPlugin/AbstractCardlist.pm 
   for details

0.50.4 2025-02-25 17:47:18 +0100 Tobias Oetiker <tobi@oetiker.ch>

 - be more careful with accessing the log handler

0.50.3 2024-09-19 16:02:07 +0200 Tobias Oetiker <tobi@oetiker.ch>

 - filter menuButtonProperties to make card view work again

0.50.2 2024-09-18 16:42:18 +0200 Tobias Oetiker <tobi@oetiker.ch>

 - fix regression with missing defaults for app and log in user object

0.50.1 2024-08-30 12:27:22 +0200 Tobias Oetiker <tobi@oetiker.ch>

 - show a popup before reloading the page

0.50.0 2024-08-29 17:12:41 +0200 Tobias Oetiker <tobi@oetiker.ch>

 - reload the browser window when an exception with status 7 is returned
 - warn if trm() is called with undefined arguments

0.49.6 2024-07-17 17:25:39 +0200 Tobias Oetiker <tobi@oetiker.ch>

 - fix some more memory loops

0.49.5 2024-06-26 18:03:12 +0200 Tobias Oetiker <tobi@oetiker.ch>

 - fix translation regressions in card list

0.49.4 2024-06-12 11:11:06 +0200 Tobias Oetiker <tobi@oetiker.ch>

 - resolve gui object leakage this will result in smaller processes!

0.49.3 2024-02-27 14:22:44 +0100 Tobias Oetiker <tobi@oetiker.ch>

 - Update required flag on change of required property

0.49.2 2024-02-20 09:57:55 +0100 Tobias Oetiker <tobi@oetiker.ch>

CHANGES  view on Meta::CPAN

* | | 7527497 - (tag: v0.8.18) allow to configure an alternate spinner image (2 years ago) <Tobias Oetiker>
* | | e96a531 - translate placeholders (2 years ago) <Tobias Oetiker>
* | | a9cd000 - (tag: v0.8.17) patch the curent color theme! (2 years ago) <Tobias Oetiker>
* | | 9c5f027 - (tag: v0.8.16) db handle must always be fresh ... (2 years ago) <Tobias Oetiker>
* | | 1035b7d - (tag: v0.8.15) fix require statement (2 years ago) <Tobias Oetiker>
* | | ca8ba6d - better search and replace expression for README on version change (2 years ago) <Tobias Oetiker>
* | | 08d98b2 - selection is not known here when submissing data so the handlers must be valid in any case (2 years ago) <Tobias Oetiker>
* | | 3622291 - (tag: v0.8.14) fix dependencies (2 years ago) <Tobias Oetiker>
* | | b3cb811 - add minimal dependencies back in (2 years ago) <Tobias Oetiker>
* | | 774d1f8 - (tag: v0.8.13) * remove sqlite dependency * transition to Mojo::File properly (2 years ago) <Tobias Oetiker>
* | |   d64efb0 - Merge pull request #41 from zaucker/NoSQL (2 years ago) <Tobias Oetiker>
|\ \ \  
| |/ /  
| * | 22fe9f7 - Replace use CallBackery::Database with require in database attribute (2 years ago) <Fritz Zaucker>
| * | ccb5147 - Replace use CallBackery::Database with require in database attribute (2 years ago) <Fritz Zaucker>
* | | 4f31622 - (tag: v0.8.12) sync up (2 years ago) <Tobias Oetiker>
* | |   0d3e49f - Merge pull request #39 from zaucker/LoginConfigurable (2 years ago) <Tobias Oetiker>
|\ \ \  
| * \ \   88bee81 - Merge branch 'LoginConfigurable' of https://github.com/zaucker/callbackery into LoginConfigurable (2 years ago) <Fritz Zaucker>
| |\ \ \  
| | * | | fa585b8 - Fix CHANGES file (2 years ago) <Fritz Zaucker>
| | * | | 653fb58 - Revert "Replace deprecated Mojo::Util::slurp() function" (2 years ago) <Fritz Zaucker>
| | * | | c4b08e9 - Make login screen configurable (2 years ago) <Fritz Zaucker>
| | | |/  
| | |/|   
| * | | f904916 - Make login screen configurable (2 years ago) <Fritz Zaucker>
| |/ /  
| * | 67dae26 - Replace deprecated Mojo::Util::slurp() function (2 years ago) <Fritz Zaucker>
* | |   1405372 - Merge pull request #40 from zaucker/MojoUpdate (2 years ago) <Tobias Oetiker>
|\ \ \  
| |/ /  
|/| /   
| |/    
| * c78b39e - Fix slurp (2 years ago) <Fritz Zaucker>
|/  
* 98fae34 - handle id strings in utf8 (2 years ago) <Tobias Oetiker>
* ee17db1 - (tag: v0.8.11) 0.8.11 (2 years ago) <Tobias Oetiker>
* 723dba1 - implement #36 (2 years ago) <Tobias Oetiker>
* 4cdc054 - (tag: v0.8.10) prep for 0.8.10 (2 years ago) <Tobias Oetiker>
* c666bdd - added missing translations (2 years ago) <Tobias Oetiker>
* dfda28e - (tag: v0.8.9) 0.8.9 (2 years, 1 month ago) <Tobias Oetiker>
*   ecfee68 - Merge pull request #31 from samoser/FixForTableRowSelection (2 years, 1 month ago) <Tobias Oetiker>
|\  
| * 99f33e5 - row must be unselected when data is not existing (2 years, 1 month ago) <amoser>
|/  
* 1903916 - (tag: v0.8.8) we need a newer version (2 years, 2 months ago) <Tobias Oetiker>
* 0f17bc6 - merge master (2 years, 2 months ago) <Tobias Oetiker>
*   5bb348e - Merge branch 'master' of github.com:oetiker/callbackery (2 years, 2 months ago) <Tobias Oetiker>
|\  
| *   efa25c4 - Merge pull request #30 from manwar/fix-pod-errors (2 years, 3 months ago) <Tobias Oetiker>
| |\  
| | * 29adfa0 - Fix pod error as reported by CPANTS. http://cpants.cpanauthors.org/dist/CallBackery (2 years, 3 months ago) <Mohammad S Anwar>
| |/  
* | 2fe27fa - improve portability (2 years, 2 months ago) <Tobias Oetiker>
|/  
* 4275dcc - better readme (2 years, 3 months ago) <Tobias Oetiker>
* 0c6b5e6 - better readme (2 years, 3 months ago) <Tobias Oetiker>
* b7b4b10 - this.tr is not available in server.js. fix for #29 (2 years, 3 months ago) <Tobias Oetiker>
* 25418af - (tag: v0.8.4) v0.8.4 (2 years, 3 months ago) <Tobias Oetiker>
* 847b0b1 - allow html in header (2 years, 3 months ago) <Tobias Oetiker>
* 02d43ea - translate busy message (2 years, 3 months ago) <Tobias Oetiker>
* 762bf8e - fix loading animation (2 years, 3 months ago) <Tobias Oetiker>
* 2cd7746 - fix args regression (2 years, 4 months ago) <Tobias Oetiker>
* 9ec77b6 - 0.8.2 (2 years, 4 months ago) <Tobias Oetiker>
* 55cfdca - args should alwais at least contain a hash ... this is only a stop gap fix ... we realy have to pass the partenArgs every time we interact with the plugin (2 years, 4 months ago) <Tobias Oetiker>
* c28ab41 - (tag: v0.8.1) 0.8.1  * allow escape to cancle popupClosed (2 years, 4 months ago) <Tobias Oetiker>
* 7c674ff - (tag: v0.7.1) fix readme issue (2 years, 4 months ago) <Tobias Oetiker>
* 80ef5e1 - cpanmin.us seems unstable (2 years, 4 months ago) <Tobias Oetiker>
* 061b82c - (tag: v0.7.0) added context menu and default action to table widget (2 years, 4 months ago) <Tobias Oetiker>
* a23d65a - handle validation on selectboxes without content (2 years, 5 months ago) <Tobias Oetiker>
* b485eb7 - be more careful with the server handler (2 years, 5 months ago) <Tobias Oetiker>
* ca89896 - better sample build app (2 years, 5 months ago) <Tobias Oetiker>
* 02a4dea - re-indent (2 years, 5 months ago) <Tobias Oetiker>
* 17493a7 - improved build system (2 years, 5 months ago) <Tobias Oetiker>
* 2325ae2 - (tag: v0.6.5) release 0.6.5 (2 years, 6 months ago) <Tobias Oetiker>
*   84b7e2b - Merge pull request #28 from samoser/PopUpPopUp (2 years, 6 months ago) <Tobias Oetiker>
|\  
| * bd84797 - PopUp-Rekursion von Tobi (2 years, 6 months ago) <amoser>
* | 0d138c9 - (tag: v0.6.4) table row focus fix (2 years, 8 months ago) <Tobias Oetiker>
* | 14edd3e - table row focus fix (2 years, 8 months ago) <Tobias Oetiker>
* | 441f4eb - (tag: v0.6.3) update changes (2 years, 8 months ago) <Tobias Oetiker>
* | 0e8c833 - cleanup additions (2 years, 8 months ago) <Tobias Oetiker>
* | 6d891a4 - refresh table on appear fix for #25 (2 years, 8 months ago) <Tobias Oetiker>
* | 7cc669c - handle action response on upload fix for #22 (2 years, 8 months ago) <Tobias Oetiker>
* |   7237520 - Merge pull request #27 from zaucker/Translation (2 years, 8 months ago) <Tobias Oetiker>
|\ \  
| * | 6201f5c - Enable Qooxdoo translations (2 years, 8 months ago) <Fritz Zaucker>
|/ /  
* |   8befa00 - Merge pull request #26 from zaucker/SupportFooter (2 years, 8 months ago) <Tobias Oetiker>
|\ \  
| * | 089fbb1 - Revert "Revert "Revert previous change for Upload toolbar button and just make UploadButton.js extend qx.ui.toolbar.Button"" (2 years, 8 months ago) <Fritz Zaucker>
| * | 0b553b2 - Revert "Allow date format table columns" (2 years, 8 months ago) <Fritz Zaucker>
| * | 0a77075 - Add optional support link to application footer (2 years, 8 months ago) <Fritz Zaucker>
| * | 05cc5d0 - Revert "Add optional support link to application footer" (2 years, 8 months ago) <Fritz Zaucker>
| * | f832ff7 - Add optional support link to application footer (2 years, 8 months ago) <Fritz Zaucker>
| * | 3b30862 - Revert "Revert previous change for Upload toolbar button and just make UploadButton.js extend qx.ui.toolbar.Button" (2 years, 9 months ago) <Fritz Zaucker>
| * | 32ed584 - Allow date format table columns (2 years, 9 months ago) <Fritz Zaucker>
* | | d88758b - (tag: v0.6.2) fix noReload option (2 years, 8 months ago) <Tobias Oetiker>
* | | 850a312 - (tag: v0.6.1) add changes file (2 years, 8 months ago) <Tobias Oetiker>
* | |   937b6c4 - (tag: v0.6.0) Merge branch 'master' of github.com:oetiker/callbackery (2 years, 8 months ago) <Tobias Oetiker>
|\ \ \  
| * \ \   ebae297 - Merge pull request #21 from samoser/samoser-patch-1 (2 years, 8 months ago) <Tobias Oetiker>
| |\ \ \  
| | |_|/  
| |/| |   
| | * | 59e0165 - Update Action.js (2 years, 8 months ago) <Samuel Amoser>
| |/ /  
* | | c495015 - feature updates (2 years, 8 months ago) <Tobias Oetiker>
|/ /  
* | 449ed66 - return a hash pointer! (2 years, 8 months ago) <Tobias Oetiker>
* | bcd45e1 - make the warning about unsaved data configurable (2 years, 8 months ago) <Tobias Oetiker>
* | 64af5df - fix for Makefile glob (2 years, 8 months ago) <Tobias Oetiker>
* | 3008e71 - do not install Makefiles (2 years, 8 months ago) <Tobias Oetiker>
* |   8d41a53 - Merge branch 'master' of github.com:oetiker/callbackery (2 years, 9 months ago) <Tobias Oetiker>
|\ \  
| * \   3a73c69 - Merge pull request #20 from zaucker/TableDateFormat (2 years, 9 months ago) <Tobias Oetiker>
| |\ \  
| | * \   67d1e12 - Merge branch 'TableDateFormat' of https://github.com/zaucker/callbackery into TableDateFormat (2 years, 9 months ago) <Fritz Zaucker>
| | |\ \  
| | | * | 1446775 - Change row to col for column name (2 years, 9 months ago) <Fritz Zaucker>
| | | * | a7563ae - Add date format for table columns (2 years, 9 months ago) <Fritz Zaucker>



( run in 0.744 second using v1.01-cache-2.11-cpan-a49fcb8fa48 )