Exemplo n.º 1
0
    def test_js_on_change_executes(self, bokeh_model_page):
        dp = DatePicker(title='Select date',
                        value=datetime(2019, 9, 20),
                        min_date=datetime(2019, 9, 1),
                        max_date=datetime.utcnow(),
                        css_classes=["foo"])
        dp.js_on_change('value',
                        CustomJS(code=RECORD("value", "cb_obj.value")))

        page = bokeh_model_page(dp)

        el = page.driver.find_element_by_css_selector('.foo input')
        el.click()

        el = page.driver.find_element_by_css_selector(
            'button[data-pika-day="16"]')
        el.click()

        results = page.results
        assert results['value'] == 'Mon Sep 16 2019'

        el = page.driver.find_element_by_css_selector('.bk-input')
        assert el.get_attribute('value') == 'Mon Sep 16 2019'

        assert page.has_no_console_errors()
Exemplo n.º 2
0
    def test_js_on_change_executes(self, bokeh_model_page) -> None:
        dp = DatePicker(title='Select date',
                        value=date(2019, 9, 20),
                        min_date=date(2019, 9, 1),
                        max_date="2019-09-30",
                        css_classes=["foo"])
        dp.js_on_change('value',
                        CustomJS(code=RECORD("value", "cb_obj.value")))

        page = bokeh_model_page(dp)

        el = page.driver.find_element_by_css_selector('.foo input')
        el.click()
        el.click()

        el = page.driver.find_element_by_css_selector(
            'span[aria-label="September 16, 2019"]')
        assert el.is_displayed()
        el.click()

        results = page.results
        assert results['value'] == '2019-09-16'

        el = page.driver.find_element_by_css_selector('.bk-input')
        assert el.get_attribute('value') == '2019-09-16'

        assert page.has_no_console_errors()
from bokeh.io import show
from bokeh.models import CustomJS, DatePicker

date_picker = DatePicker(title='Select date', value="2019-09-20", min_date="2019-08-01", max_date="2019-10-30")
date_picker.js_on_change("value", CustomJS(code="""
    console.log('date_picker: value=' + this.value, this.toString())
"""))

show(date_picker)
Exemplo n.º 4
0
date_picker.js_on_change(
    'value',
    CustomJS(args=dict(s1=s1, s2=s2, s3=s3, s4=s4),
             code="""
    var d1 = s1.data;
    var d2 = s2.data;
    var f = cb_obj.value;
    d2['x'] = [];
    d2['y'] = [];
    d2['names'] = [];
    d2['confirmed_cases'] = [];
    d2['deaths'] = [];
    for (var i = 0; i < d1['x'].length; i ++){
        if (d1['z'][i] == f){
            d2['x'].push(d1['x'][i]);
            d2['y'].push(d1['y'][i]);
            d2['names'].push(d1['y'][i] + ' new cases on ' + f);
            d2['confirmed_cases'].push(d1['p'][i] + ' confirmed cases');
            d2['deaths'].push(d1['q'][i] + ' deaths');
            break;
        }
    }
    s2.change.emit()

    var d3 = s3.data;
    var d4 = s4.data;
    d3['cases'] = Array(d3['x'].length).fill(0);
    d3['deaths'] = Array(d3['x'].length).fill(0);
    d3['cases_text'] = Array(d3['x'].length).fill('0%');
    d3['deaths_text'] = Array(d3['x'].length).fill('0%');
    d3['num_cases'] = Array(d3['x'].length).fill(0);
    d3['num_deaths'] = Array(d3['x'].length).fill(0);
    for (var i = 0; i < d4['x'].length; i ++){
        if (d4['date'][i] == f){
            for (var j = 0; j < d3['x'].length; j ++){
                if (d4['x'][i] == d3['x'][j]){
                    d3['cases'][j] = Number((d4['cases'][i]).toFixed(4));
                    d3['deaths'][j] = Number((d4['deaths'][i]).toFixed(4));
                    d3['cases_text'][j] = Number((d4['cases'][i]*100).toFixed(4)) + '%';
                    d3['deaths_text'][j] = Number((d4['deaths'][i]*100).toFixed(4)) + '%';
                    d3['num_cases'][j] = d4['num_cases'][i];
                    d3['num_deaths'][j] = d4['num_deaths'][i];
                }
            }
            
        }
    }
    s3.change.emit()
"""))