Adrien Di Mascio <Adrien.DiMascio@logilab.fr> [Tue, 22 May 2012 12:41:18 +0200] rev 8412
[IE] use document.createStyleSheet to add CSS dynamically (closes #2356261)
Aurelien Campeas <aurelien.campeas@logilab.fr> [Mon, 21 May 2012 14:17:09 +0200] rev 8411
[pkginfo] the before_shutdown event was not in 3.15.0
Aurelien Campeas <aurelien.campeas@logilab.fr> [Wed, 16 May 2012 09:57:57 +0200] rev 8410
[migration] do not crash if the conf file is already migrated (closes #2361061)
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 15 May 2012 14:44:45 +0200] rev 8409
[datafeed] fix/finish cleanup started by auc in 8393:c25b96ae4f8a: parser.process prototytpe is (url, raise_on_error=False). Drop partialcommit argument which were never specified
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 15 May 2012 14:43:30 +0200] rev 8408
backport stable
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 14 May 2012 15:25:41 +0200] rev 8407
[logs table view] properly translate level buy using the correct msgid. Closes #2356329
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 14 May 2012 15:24:07 +0200] rev 8406
[data import] don't crash if value isn't in the file, simply no key/value in the output dict. Closes #2356328
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 15 May 2012 14:43:08 +0200] rev 8405
[logs table view] only put values starting with http in <a> tag
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 15 May 2012 10:57:14 +0200] rev 8404
[db-api] fix typo leading to crash on client connection (config has no translations). Closes #2357044
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 15 May 2012 10:36:02 +0200] rev 8403
[data import] allow a request to be given as argument, ease use from web ui
Julien Cristau <julien.cristau@logilab.fr> [Tue, 15 May 2012 10:34:34 +0200] rev 8402
[datafeed] allow the xml datafeed parser to work with client-side connections
Florent Cayré <florent.cayre@logilab.fr> [Tue, 17 Apr 2012 12:28:51 +0200] rev 8401
small doc updates
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 15 May 2012 10:32:53 +0200] rev 8400
[ldapfeed] properly mark email address as encountered during import to avoid deleting them
Aurelien Campeas <aurelien.campeas@logilab.fr> [Fri, 11 May 2012 10:14:51 +0200] rev 8399
[merge] backport stable
Aurelien Campeas <aurelien.campeas@logilab.fr> [Fri, 11 May 2012 10:08:58 +0200] rev 8398
[server/utils] passlib 1.6 is now less tolerant wrt handler names (closes #2349330)
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 10 May 2012 10:37:28 +0200] rev 8397
backport stable
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 10 May 2012 10:31:53 +0200] rev 8396
[web] remove some unused imports
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 10 May 2012 10:33:42 +0200] rev 8395
[selectors] make multi_columns_rset work with a simple list of lists
Aurelien Campeas <aurelien.campeas@logilab.fr> [Wed, 09 May 2012 17:15:44 +0200] rev 8394
[server/hook] a tiny bit of doc about before_server_shutdown
Aurelien Campeas <aurelien.campeas@logilab.fr> [Wed, 09 May 2012 16:43:48 +0200] rev 8393
[events] add a new before_shutdown event (closes #2345728)
Aurelien Campeas <aurelien.campeas@logilab.fr> [Wed, 09 May 2012 16:35:46 +0200] rev 8392
[ldapparser] cleanup
Aurelien Campeas <aurelien.campeas@logilab.fr> [Wed, 09 May 2012 16:31:03 +0200] rev 8391
[ldapparser] reapply dropped fix
Aurelien Campeas <aurelien.campeas@logilab.fr> [Wed, 09 May 2012 16:23:21 +0200] rev 8390
[app] turn these info into debug logs (this being too chatty for .info)
Florent Cayré <florent.cayre@logilab.fr> [Wed, 18 Apr 2012 12:01:31 +0200] rev 8389
fix static file serving when url has parameters (like cache busters do)
Julien Cristau <julien.cristau@logilab.fr> [Wed, 09 May 2012 15:06:43 +0200] rev 8388
[repo test] Avoid hangs in zmq repo unit test
- interaction through the zmq event loop from a different thread is only
allowed through add_callback
- notify the background thread when the client dies with an exception so it
doesn't spin forever
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 03 May 2012 15:52:01 +0200] rev 8387
[ldap] we may actually get back password from ldap
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 03 May 2012 15:50:23 +0200] rev 8386
[ldapfeed, test] use default source config
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 03 May 2012 15:50:03 +0200] rev 8385
[ldapfeed, test] use a safe internal session, as in real life
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 03 May 2012 15:48:54 +0200] rev 8384
[datafeed] give a dictionary as sourceparams to avoid crash if attempt to import the user is done
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 03 May 2012 15:47:29 +0200] rev 8383
[yams] Binary instance passwords should not be given to str()
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 03 May 2012 15:45:58 +0200] rev 8382
[ldapfeed] don't crash if entity is None. Closes (superficialy) #2341266
Aurelien Campeas <aurelien.campeas@logilab.fr> [Wed, 02 May 2012 10:13:39 +0200] rev 8381
[merge] backport stable fixes
Aurelien Campeas <aurelien.campeas@logilab.fr> [Wed, 02 May 2012 10:12:02 +0200] rev 8380
[bin/clonedeps] fix NameError (closes #2334080)
Aurelien Campeas <aurelien.campeas@logilab.fr> [Fri, 27 Apr 2012 15:09:27 +0200] rev 8379
[sources/native] do not let a log message crash on us
Aurelien Campeas <aurelien.campeas@logilab.fr> [Fri, 27 Apr 2012 14:22:38 +0200] rev 8378
[merge] backport stable
Aurelien Campeas <aurelien.campeas@logilab.fr> [Fri, 27 Apr 2012 14:10:04 +0200] rev 8377
[cwconfig] impose an order on appobject paths processing: entities first (closes #2330799)
Aurelien Campeas <aurelien.campeas@logilab.fr> [Wed, 25 Apr 2012 11:39:14 +0200] rev 8376
[serverctl] avoid a crash if zmq-address is not defined/empty (config.get is a false friend wrt dict behaviour)
Aurelien Campeas <aurelien.campeas@logilab.fr> [Tue, 24 Apr 2012 10:31:46 +0200] rev 8375
fix an horrible typo
Aurelien Campeas <aurelien.campeas@logilab.fr> [Mon, 23 Apr 2012 18:01:30 +0200] rev 8374
[migration/3.14.4] prevent migration crash when there are NULLs in asource
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 12 Apr 2012 19:08:30 +0200] rev 8373
Added tag cubicweb-debian-version-3.15.0-1 for changeset 925db25a3250
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 12 Apr 2012 19:08:29 +0200] rev 8372
Added tag cubicweb-version-3.15.0 for changeset 0642b2d03aca
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 12 Apr 2012 13:58:55 +0200] rev 8371
typo
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 12 Apr 2012 13:52:23 +0200] rev 8370
3.15.0
Florent Cayré <florent.cayre@logilab.fr> [Thu, 12 Apr 2012 13:55:18 +0200] rev 8369
[static web] fix fckeditor static files delivery: remove leading subpath and url parameters from computed file path
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 11 Apr 2012 16:47:30 +0200] rev 8368
[doc] 3.15 services api description
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 11 Apr 2012 14:36:19 +0200] rev 8367
[service-api] Add unified service API on `_cw` attribute
This will allow writting generic entity code that could run on both client and
repo side.
This addition have been discussed with Sylvain Sylvain Thenault.
Florent Cayré <florent.cayre@logilab.fr> [Wed, 11 Apr 2012 14:43:51 +0200] rev 8366
fix ``call_service`` API and add test service API
``call_service`` was taking a session argument. But Service is an AppoObject and
already has the same session accessible as ``self._cw``.
David Douard <david.douard@logilab.fr> [Wed, 11 Apr 2012 14:16:27 +0200] rev 8365
[skel] update newcube skeleton (closes #2312509)
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 11 Apr 2012 15:48:12 +0200] rev 8364
[doc] improved 3.15 blog using developpers'contributions
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 11 Apr 2012 13:28:10 +0200] rev 8363
[devtool-testlib] add deprecated entry point for publish method
6c2119509fac renamed ``publish`` to ``handle_request``. And removed the older testlib
function (because the semantic of handle_request is quite different from the
publish one). However it seems to do more harm that good and I'm adding proxy with
deprecation warning for those.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 11 Apr 2012 13:22:47 +0200] rev 8362
[doc] improve 3.15 release blog
Aurelien Campeas <aurelien.campeas@logilab.fr> [Wed, 11 Apr 2012 12:18:33 +0200] rev 8361
[web/views/staticcontrollers] restore windows compat
David Douard <david.douard@logilab.fr> [Wed, 11 Apr 2012 09:40:11 +0200] rev 8360
Added tag cubicweb-debian-version-3.14.7-1 for changeset 20ee573bd237
David Douard <david.douard@logilab.fr> [Wed, 11 Apr 2012 09:40:11 +0200] rev 8359
Added tag cubicweb-version-3.14.7 for changeset 3ba3ee5b3a89
David Douard <david.douard@logilab.fr> [Wed, 11 Apr 2012 09:37:41 +0200] rev 8358
3.14.7
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 10 Apr 2012 21:52:23 +0200] rev 8357
[3.15 migration] repo-uri is a c-c command option and does not need migration since it doesn't exist in the configuration file
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 10 Apr 2012 18:14:16 +0200] rev 8356
[remote rql source] fix super call
Vincent Michel <vincent.michel@logilab.fr> [Wed, 04 Apr 2012 17:46:34 +0200] rev 8355
[zmq] Add a new ZMQ-based RQL source (closes #2290203)
Vincent Michel and Alain Leufroy [Wed, 04 Apr 2012 17:47:58 +0200] rev 8354
[pyro] Refactor the pyrorql source
Extract most of the code that is not related to Pyro from PyroRQLSource
in a new RemoteSource abstract class.
David Douard <david.douard@logilab.fr> [Wed, 04 Apr 2012 10:57:03 +0200] rev 8353
[zmq] add unit tests for ZMQ-based repository (server and dbapi)
Vincent Michel <vincent.michel@logilab.fr> [Tue, 10 Apr 2012 17:09:04 +0200] rev 8352
[dbapi] add possibility to connect to a remote ZMQRepository (closes #2290126)
David Douard <david.douard@logilab.fr> [Tue, 10 Apr 2012 17:07:03 +0200] rev 8351
[repository] fire 'server_shutdown' hooks before waiting for theads
This is required for threaded tasks that use the 'server_shutdown' hook to die properly,
as for example the ZMQ server in an all-in-one configuration
David Douard <david.douard@logilab.fr> [Wed, 04 Apr 2012 16:51:09 +0200] rev 8350
[zmq] Implement a ZMQ-based Repository (closes #2290125)
This Repository server behave mainly like the Pyro-based repository.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 10 Apr 2012 17:03:19 +0200] rev 8349
backport stable
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 10 Apr 2012 16:59:50 +0200] rev 8348
[test] update create_user call
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 10 Apr 2012 16:59:27 +0200] rev 8347
[test] use setUpClass rather than setUpModule to avoid inter-dependency pb with CubicWebTC sub-classes
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 10 Apr 2012 14:29:42 +0200] rev 8346
[test] with yams#stable, ordernum is different than with yams#default
Anthony Truchet <anthony.truchet@logilab.fr> [Tue, 10 Apr 2012 10:45:40 +0200] rev 8345
[bin] Force clone_deps.py to use mercurial command-line interface - closes #2296057
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 10 Apr 2012 10:42:23 +0200] rev 8344
[table view] EntityTableView should accept **kwargs as RsetTableView
David Douard <david.douard@logilab.fr> [Thu, 05 Apr 2012 22:42:40 +0200] rev 8343
Fix a Python 2.5 regression introduced by previous commit
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 26 Mar 2012 12:11:48 +0200] rev 8342
[rql annotation] fix has_text_query detection (if coming from sub-query and if has_text on a column aliases. Closes #2275322
Florent Cayré <florent.cayre@gmail.com> [Thu, 05 Apr 2012 14:44:00 +0200] rev 8341
[etwist] fix static directory serving; closes #2174797
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 29 Mar 2012 14:20:41 +0200] rev 8340
[form renderer] refactor inline form renderer to ease overriding. Closes #2282662
Julien Cristau <julien.cristau@logilab.fr> [Wed, 04 Apr 2012 18:44:07 +0200] rev 8339
[devtools] fix bashism in xvfb-run.sh
bash's trap builtin accepts SIGUSR1, whereas dash complains. So use USR1 instead.
David Douard <david.douard@logilab.fr> [Wed, 04 Apr 2012 15:04:16 +0200] rev 8338
[devtools] fix xvfb-run.sh permissions (exec bit)
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 20 Mar 2012 11:01:24 +0100] rev 8337
[form] add a new property telling if the form is being generated or posted. Closes #2262340
Katia Saurfelt <katia.saurfelt@logilab.fr> [Thu, 29 Mar 2012 14:25:51 +0200] rev 8336
[workflow] set default test/plain option for workflow default comment (closes #993083)
Katia Saurfelt <katia.saurfelt@logilab.fr> [Thu, 29 Mar 2012 14:24:49 +0200] rev 8335
[js] get rid of `partial` function (closes #1972794)
Katia Saurfelt <katia.saurfelt@logilab.fr> [Wed, 21 Mar 2012 15:23:47 +0100] rev 8334
[css] change `h3` and `h4` styles(closes #893244)
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 21 Mar 2012 18:33:12 +0100] rev 8333
querier: Improve error message when ERQLExpression fails on some entity (closes #2267081)
When an RQL variable is indeed "constant" (we know it's eid) ERQL expression are
not inserted but checked prior query execution. If the session have no read
access to the entity an `Unauthorized` exception is raised.
This changeset add a meaningfull message to this exception::
No read acces on "X" with eid 42.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 26 Mar 2012 12:13:40 +0200] rev 8332
[js] fix error in loadRemote docstring
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Wed, 28 Mar 2012 23:30:19 +0200] rev 8331
[doc] add missing section titles
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Wed, 28 Mar 2012 22:24:55 +0200] rev 8330
[doc] fix bad indentation
Aurelien Campeas <aurelien.campeas@logilab.fr> [Mon, 26 Mar 2012 13:29:27 +0200] rev 8329
[server/ldaputils] do not allow ldap.server_down to crash on us
Julien Cristau <julien.cristau@logilab.fr> [Thu, 22 Mar 2012 11:50:34 +0100] rev 8328
Add missing with_statement import for python2.5 compat
Julien Cristau <julien.cristau@logilab.fr> [Thu, 22 Mar 2012 11:50:43 +0100] rev 8327
[devtools] make xvfb-run not wait 3s each time (closes #2265710)
Ask Xvfb to tell us when it's ready instead of unconditionally waiting 3
seconds.
Sync from
http://anonscm.debian.org/gitweb/?p=pkg-xorg/xserver/xorg-server.git;a=blob_plain;f=debian/local/xvfb-run;hb=HEAD
Katia Saurfelt <katia.saurfelt@logilab.fr> [Wed, 21 Mar 2012 11:08:31 +0100] rev 8326
[view] breadcrumbs layout broken with long elements (closes #1347486)
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 20 Mar 2012 18:29:13 +0100] rev 8325
[static-file] return Unauthorized on blocked directory listing
This is more appropriate than 404 NOT FOUND
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 20 Mar 2012 18:28:24 +0100] rev 8324
[login redirect] only add postlogin_path argument when meaningful
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 19 Mar 2012 14:37:43 +0100] rev 8323
static-file: properly set/use cache header for static file (closes #2255013)
This changesets enables the standard http cache mechanism where the static
controller may reply "304 Not modified" based on `last-modified` in HTTP
response and `if-modified-since` in HTTP query. The last modified time is
computed using the file-system information.
The pre-existing logic using an `Expires` header to prevent client from sending
request stay in place. The new logic just prevents sending the file again if not
necessary.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 20 Mar 2012 18:25:06 +0100] rev 8322
[repository] move task manager instantiation outside repository.
Repository callers are in charge of providing a task manager.
The task manager is optional when the repository is not a server. This
part is not really expected to work well yet. But we aim to remove all task
management responsibilities from the Repository object.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 20 Mar 2012 18:24:46 +0100] rev 8321
[repository] split repo initialization from starting looping task (closes #2204047)
This separation highlights that two distinct operations are done. This is a step
towards a full distinction between repo, server and looping tasks
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 20 Mar 2012 18:24:35 +0100] rev 8320
[repo looping task] move looping task logic in a dedicated object (progress #2204047)
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 20 Mar 2012 18:20:20 +0100] rev 8319
[manage / default index views] discard login/logout templates
Pierre-Yves David <pierre-yves.david@logilab.fr> [Fri, 16 Mar 2012 14:23:58 +0100] rev 8318
devtools-request: transmit the headers keyword argument to the request class
Otherwise the headers kwargs end up in the form.
This is very useful for testing publish logic related to http header (as cache).
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 16 Mar 2012 17:59:48 +0100] rev 8317
[security] use a stronger encryption algorythm for password, keeping bw compat
Administrator should ask their users to reenter new password so they
benefit from the new encryption.
Also, new encryption is cross-platform compatible, eg you may now move an instance
from windows to linux painlessly
Adrien Di Mascio <Adrien.DiMascio@logilab.fr> [Thu, 15 Mar 2012 17:59:27 +0100] rev 8316
[cache] factorize _validate_cache() logic implemented in wsgi and twisted handlers
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 15 Mar 2012 17:57:40 +0100] rev 8315
[fake-request] support `http_method()`
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 15 Mar 2012 18:34:59 +0100] rev 8314
[Web-Request] Use rich header (closes #2204164)
Unify header management. All web request use the Headers class now (imported
from twisted). Code dedicated to header management have been merged into the
base WebRequest class.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 15 Mar 2012 17:54:40 +0100] rev 8313
http-header: support __contains__ in Headers
You can now use::
>>> 'expires" in headers
True
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 15 Mar 2012 17:48:20 +0100] rev 8312
[web] Move request handling logic into cubicweb application. (closes #2200684)
We improve http status handling in the process:
``application.publish`` have been renamed to ``application.handle`` to better
reflect it's roles.
The request object gain a status_out attribute to convey the HTTP status of the
response.
WSGI and etwist code have been updated.
Exception gain status attribute
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 15 Mar 2012 17:42:31 +0100] rev 8311
[login] split authentication logic from post authentication logic (closes #2200755)
* The Session manager is now only in charge of providing a valid session.
* LoginControllers are now used in all case but wrong credential.
* The LoginControllers are in charge of redirecting the user to the page wanted
to see in the first place, expected to see.
* The login form is now always submitted to the login controller with an extra
argument pointing to the url we should redirect too after successful
authentication.
The ``"log out first logic"`` logic on login controller is removed because:
1. Other web actor do not do that.
2. Removed code do not need to be reimplemented.
3. We can only get it to work again in a single case: use do a GET request on
http://www.my-cw-stuff.io/login
4. I do not see it's purpose.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 01 Mar 2012 12:08:35 +0100] rev 8310
[LoginForm] refactor to ease other implementation
An Abstract BaseLoginForm is created. It is intended to be used by cubes who
want to implement new login form. It gather common login form elements in
particular the form action.
This will ease redefinition of this form action in later commit.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 27 Feb 2012 15:24:14 +0100] rev 8309
[request] gather all base_url logic in a single place (closes #2200756)
* Handle ``https base-url`` in the core code: ``./req.py`` and ``web/request.py``
* Remove custom ``base_url`` handling if web request
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 15 Mar 2012 17:30:28 +0100] rev 8308
[http] drop use-request-subdomain feature (closes #2251986)
This feature do not have any user nowaday and lays in the path to WSGI.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 16 Mar 2012 10:29:15 +0100] rev 8307
backport stable
Anthony Truchet <anthony.truchet@logilab.fr> [Thu, 15 Mar 2012 14:26:12 +0100] rev 8306
[config, undo] Fix undo-support option migration
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 13 Mar 2012 15:27:30 +0100] rev 8305
Added tag cubicweb-debian-version-3.14.6-1 for changeset 75364c099490
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 13 Mar 2012 15:27:30 +0100] rev 8304
Added tag cubicweb-version-3.14.6 for changeset db021578232b
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 13 Mar 2012 14:21:11 +0100] rev 8303
3.14.6
Julien Cristau <julien.cristau@logilab.fr> [Tue, 13 Mar 2012 14:20:28 +0100] rev 8302
[debian] add a watch file
Allows tools like uscan to find the tarball for new debian revisions.
Julien Cristau <julien.cristau@logilab.fr> [Tue, 13 Mar 2012 14:20:16 +0100] rev 8301
[uilib] don't print timedeltas between 0 and 23h as negative (closes #2236352)