=======
CHANGES
=======

3.0.0 (2025-06-04)
------------------

- switch from z3c.jsonrpc to p01.jsonrpc


2.2.6 (2025-05-26)
------------------

- make progress with python 2.7/3 migration


2.2.5 (2024-01-26)
------------------

- bugfix: remove bad unicode char from j01.loading.js javascript file


2.2.4 (2023-02-21)
------------------

- bugfix: get attribute values based on attrNames from Button instance and not
  from ButtonAction.


2.2.3 (2022-02-17)
------------------

- feature: added stopPropagation option to on click handler. This allows to
  use j01.jsonrpc click handler in nested structure without to propagate the
  click event to a parent element. E.g. an a href as child in a div where the
  a href element and the div provide a click handler.


2.2.2 (2019-09-02)
------------------

- feature: support cssHTMLId and cssBodyId in j01FormProcessor jsonrpc response
  and apply this ids to html and body tag if they get used in response. For more
  information see cssHTMLClass and cssBodyClass below.


2.2.1 (2019-05-14)
------------------

- bugfix: fix issues with latest z3c.form py3 changes. Ensure that the ordered
  dict used in buttons get initialized.


2.2.0 (2018-02-25)
------------------

- bugifx: remove jquery browser.msie usage in form serialisation because
  $.browser.msie is not supported in jquery version 1.9.

- feature: added jquery migrate 1.4.1 plugins, use this for migration nad
  backwards compatibility


2.1.3 (2018-02-09)
------------------

- bugfix: call j01RenderHTMLAndBodyMarkers before we render the content.
  Otherwise the dom doesn't provide the right classes and ids. And more
  important, if we use the cssHTMLId, cssHTMLClass, cssBodyId or cssBodyClass
  for display parts of the site, the new part of the site is not visible and
  doesn't provide the correct width and height and size caculation will fail.
  This happend by loading an j01.pager and the pager width didn't get
  calculated because we rendered the pager into an invisable site part.


2.1.2 (2017-12-27)
------------------

- feature: support cssHTMLId and cssBodyId in jsonrpc response and apply
  this ids to html and body tag if they get used in response. For more
  information see cssHTMLClass and cssBodyClass below.

- feature: support cssHTMLClass and cssBodyClass in jsonrpc response and apply
  this classes to html and body tag if they get used in response. This is a
  smart concept for enable and disable parts of a mobile page and can control
  single application pages. This can get used for hide the detail content if
  you load an item listing and disable the listing if you load the detail page
  by just apply the relevant css class to the body element.


2.1.1 (2017-09-18)
------------------

- bugfix: fix input enter javascript. Added missing event function argument

- bugfix: removed __call__ method from button Handlers class. This method was
  never used and the implementation was never working


2.1.0 (2017-06-29)
------------------

- feature: added contentRenderMethodName for rendering the response content
  based on additional javascript methods

- bugfix: removed double ;; in j01.jsonrpc.js


2.0.3 (2017-01-11)
------------------

- bugfix: fix adapter configuration signature for JSONErrorViewSnippet and
  JSONValueErrorViewSnippet.

- feature: new layout mixin helper class offering html and body element id and
  css class mixins in page and forms.


2.0.2 (2015-06-15)
------------------

- bugfix: fix button value translation. Added explicit translation to value
  based on given button schema field (i18nmessageid) title


2.0.1 (2015-03-17)
------------------

- feature: added different testing hooks for p01.testbrowser suport.
  The new p01.testbrowsre package implicit support any j01.jsonrpc
  button and link click call. This is a big imrpovement and makes testing
  a lot simpler.

- feature: added j01.loading.css file based on j01.loading.less

- bugfix: fix error handling in javacsript for jsonrpc error response
  support onError and onException. onError handles known status 200
  json-rpc error response and onException handles non staus 200 errors.
  Also make sure that a JQuery event get triggered if no error handling
  concept is used e.g. if onError is missing


2.0.0 (2015-01-20)
------------------

- feature: support old j01.proxy.js javascript as j01.proxy.deprecated.js

- feature: reimplement JSONRPC proxy javascript library. Improved error
  handling and timeout callbacks. NOTE: the new library is not backward
  compatible. The most important part is the addMethod signature which changed
  from:
  addMethod(name, onSuccess, onError, onTimeout, isPushState, id)
  to:
  addMethod(name, callback, requestId, onError, onTimeout)
  The addMethod will also return the method itself. This method can get used
  for apply optional event handler for onLoading and onLoaded.
  The JSONRPC proxy will trigger a JQuery event on errors by default.
  You can simply register an event handler for the ``j01.proxy.error`` event
  or you can define your own onError handler. Since we initialize a jsonrpc
  call from the client, we also support an isPushState marker for trigger
  push state. This allows us to supress a push state given from a server
  response if needed. Of corse the isPushState is only relevant if the optional
  j01.history.js library is used.

- feature: trigger ``j01.jsonrpc.error`` if error content target is missing
  in j01RenderContentError error handler. This allows to apply a custom error
  handler.

- feature: move history concept to a separate file called j01.history.js. This
  makes it possible to apply a different history concept. This means you need
  to include this file too or you will loose the defautl jsonrpc history
  conecpt.

- bugfix: use id instead of requestId as jsonrpc response id in j01.proxy.js

- feature: support explicit disable button call in j01ButtonDisabler. This
  allows us to disable a button asap in a rendered page for the given duration.
  This is usefull for re-submit buttons e.g. send this again etc.


1.0.1 (2014-08-25)
------------------

- remove history javascript implementation and integrate native browser history
  api support in jsonrpc page, form, jsonrpc method and javascript. Now the
  browser history api is implicit supported. There are several attributes for
  enable or manipulate the browser history state handling in the jsonrpc form
  and page classes. See the comments in the form class for more information.

- bugfix: fix missing getJavaScript and getInputEnterJavaScript method in
  simple Button

- bugfix: skip widget update call for buttons. They don't need to update the
  value

- feature: added new j01.loading.js javascript which shows a progress line at
  the top of the page or anywhere you need it. Moved the existing spinner
  loading javascript to j01.spinner.js.

- feature: added JQuery events called j01.jsonrpc.loading and
  j01.jsonrpc.loaded before and after loading content.

- feature: provide new CloseButton which is able to remove content from the
  html page using jquery.empty and an animation. As default animation the
  jquery slideUp method is used.

- feature: implemented jsonrpc testing helper methods for button submit etc.

- fix: ``jsform.JSONRPCFormMixin``: checking for REDIRECT_STATUS_CODES after
  update() too


1.0.0 (2014-04-04)
------------------

- implemented a compatible z3c.form button and handler concept. This
  new button and handler concept supports the z3c.form button and handler
  concept and can get used as a replacement for any form. This implementation
  will lookup the button handler by it's name form a simple dict and does not
  use a built in adapter registry. This makes it compatible with any kind of
  button and handler implementation. The existing jsbutton module isn't
  available anymore. Import the new buttons from j01.jsonrpc.btn.


0.7.0 (2014-03-25)
------------------

- feature: implemented button disable concept based on button property and
  JQuery event. Take alook at the new j01.button.js javascript. Note, this
  implementation keeps event handler intact. Other concepts like the one
  used in the twitter bootstrap framework will destroy applied event handler
  during reset a button state which will not work for our implementation.

- feature: implemented JQuery click event trigger. This could get used for
  different concepts like apply a loading icon etc. We also use this event
  handler for the new button disable concept.


0.6.0 (2014-03-04)
------------------

- javascript: use JSON2 as default instead of eval for load json repsonse.
  Fallback to custom implementation if no JSON2 is available.

- javascript: update to newest history.js javascripts

- javascript: implemented low level unauthorized nextURL error response
  handling in j01.proxy.js javascript.

- implemented handleError method

- changed unauthorized error page redirect from loginForm.html to
  j01Login.html for better customization. Note, you will need at least to
  register your existing loginForm.html as an additional j01Login.html page.
  Or the new nextURL redirect to j01Login.html will point ot a missing page.
  This changes makes it possible to show an explicit comment (session expires
  for jsonrpc call).

- feature: improve history state handling. Remember initial url and support
  go back to the initial url too whcih doesn't provide a ``j`` marker argument.

- feature: implemented improved json-rpc client including custom error handling
  and removed the dependency to z3c.jsonrpcproxy. This means you need to
  define the z3c.jsonrpcproxy dependency if you use the z3c.jsonrpcproxy
  javascript client in your package.


0.5.1 (2013-03-19)
------------------

- feature: support button action handling based on default z3c.form concept.
  This let us allow to use urls like <page-url>?form.buttons.foobar=1 for non
  jsonrpc requests

- feature: implemented JSONRPCClickButton using a simple click event handler

- feature: support prefixWidgets and prefixButtons property for separate
  different forms loaded into one single page.

- feature: improve javascript callback handler and support scrollToExpression
  with scroll to animation after loading jsonrpc content.

- support response.data.i18nMessage as additional error response given from
  z3c.jsonrpc error views


0.5.0 (2012-11-16)
------------------

- initial release
