view libervia/pages/_browser/tmp_aio.py @ 1417:314bba1ae433

pages: breadcrumbs handling: a new `breadcrumbs` list of dict is created in `template_data`. By default it is automatically filled by pages run to reach the requested URI, but a page can customize it. A breadcrumb data dict must have a `label`, should have an `url` and may have an `icon` (which is the name of a SàT Media well-known icon). Pages may now have a `label` attribute, which is used to automatically fill the crumb (otherwise page name then URI is used). A new `add_breadcrumb` method can be used to manually breadcrumb data, in which case auto-filling is disabled.
author Goffi <goffi@goffi.org>
date Thu, 29 Apr 2021 20:48:35 +0200
parents 48e2a8b07c0b
children
line wrap: on
line source

from browser import window

"""Q&D module to do ajax requests with data types currently unsupported by Brython"""
# FIXME: remove this module when official aio module allows to work with blobs

window.eval("""
var _tmp_ajax = function(method, url, format, data){
    return new Promise(function(resolve, reject){
        var xhr = new XMLHttpRequest()
        xhr.open(method, url, true)
        xhr.responseType = format
        xhr.onreadystatechange = function(){
            if(this.readyState == 4){
                resolve(this)
            }
        }
        if(data){
            xhr.send(data)
        }else{
            xhr.send()
        }
    })
}
""")

ajax = window._tmp_ajax