Пример #1
0
def box_behavior(event):
    if event.shiftKey and event.ctrlKey:
        color = event_color_mixed[event.type]

    elif event.shiftKey:
        color = event_color_shift[event.type]

    elif event.ctrlKey:
        color = event_color_crtl[event.type]

    elif event.type == 'contextmenu':
        color = 'wheat'

    else:
        color = event_color[event.type]

    area_output = 'evento:"{}", cor:"{}", shift:{}, ctrl:{}'.format(
        event.type, color, event.shiftKey, event.ctrlKey)

    document['caixa'].style.fill = color
    document.select_one('span').text = '{' + area_output + '}'

    try:
        document.select_one('#area').text += '{' + area_output + '}\n'
    except Exception:
        ...
Пример #2
0
def done_card(event):
    card, primary, error = card_elements(event)
    error.remove()
    primary.text = 'Refazer'
    primary.bind('click', redo)
    primary.unbind('click', done_card)
    document.select_one('#done') <= card
Пример #3
0
def error_message(msg: str):
    has_error = document.select_one('#error')
    if not has_error:
        div = html.DIV(msg,
                       Id='error',
                       Class='terminal-alert terminal-alert-error')
        fieldset = document.select_one('fieldset')
        fieldset.insertBefore(div, fieldset.firstChild)
Пример #4
0
def done(evt):
    card, primary, error, task_id = card_elements(evt)
    primary.text = 'Refazer!'
    error.remove()
    primary.unbind('click', done)
    primary.bind('click', redo)

    change_state(task_id, 'done')

    document.select_one('div.done div.terminal-timeline') <= card
Пример #5
0
def back_card(event):
    card, primary, error = card_elements(event)
    primary.text = 'Fazer'
    error.text = 'Cancelar'

    primary.unbind('click', done_card)
    primary.bind('click', doing_card)

    error.unbind('click', back_card)
    error.bind('click', cancel_card)

    document.select_one('#todo') <= card
Пример #6
0
def read_form():
    name = (document.select_one('#todo-name').value,)
    description = (document.select_one('#todo-desc').value,)
    check = document.select_one('#todo-next').checked
    valid = bool(name[0])

    if not valid:
        error_message()
    else:
        clear_error_messages()

    return name, description, check, valid
Пример #7
0
def doing_card(event):
    card, primary, error = card_elements(event)
    primary.text = 'Pronto'
    error.text = 'Voltar'

    primary.unbind('click', doing_card)
    primary.bind('click', done_card)

    error.unbind('click', cancel_card)
    error.bind('click', back_card)

    document.select_one('#doing') <= card
Пример #8
0
def task_register(evt):
    name = document.select_one('[name="name"]')
    desc = document.select_one('[name="desc"]')
    urgent = document.select_one('[name="urgent"]')

    json = {
        'name': name.value,
        'description': desc.value,
        'urgent': urgent.checked,
        'state': 'todo',
    }
    request('/task-register', json=json, bind=register_task)
Пример #9
0
    def show_speller(self, visible) -> None:
        """"""
        if visible:
            self.speller.style = {'display': 'block'}
            self.last_value = w.component['trials'].mdc.getValue()
            w.component['trials'].mdc.setValue(-1)
            document.select_one('#value_trials').html = ' infinite'

        else:
            self.speller.style = {'display': 'none'}
            w.component['trials'].mdc.setValue(self.last_value)
            document.select_one('#value_trials').html = f' {self.last_value}'
Пример #10
0
def redo(event):
    card, primary, error = card_elements(event)
    iternal_div = card.select('div')[1]

    error = html.BUTTON('Cancelar', Class='btn btn-error btn-ghost cancel')
    error.bind('click', cancel_card)
    iternal_div <= error

    primary.text = 'Fazer'
    primary.unbind('click', redo)
    primary.bind('click', doing_card)

    document.select_one('#todo') <= card
Пример #11
0
def redo(evt):
    card, primary, error, task_id = card_elements(evt)
    internal_div = card.select('div')[1]

    primary.text = 'Fazer!'
    primary.unbind('click', redo)
    primary.bind('click', do)

    error = html.BUTTON('Cancelar!', Class='btn btn-error btn-ghost cancel')

    error.bind('click', cancel)

    internal_div <= error
    change_state(task_id, 'todo')
    document.select_one('div.todo div.terminal-timeline') <= card
Пример #12
0
def back(evt):
    card, primary, error, task_id = card_elements(evt)
    # Texto
    primary.text = 'Fazer!'
    error.text = 'Cancelar!'

    # Unbinding
    primary.unbind('click', done)
    error.unbind('click', back)

    # binds
    primary.bind('click', do)
    error.bind('click', cancel)
    change_state(task_id, 'todo')
    document.select_one('div.todo div.terminal-timeline') <= card
Пример #13
0
def alerts(event):
    response = False
    name = ''

    window.alert('Isso é um alerta!!')

    while not (response and name):
        name = window.prompt('Digite seu nome')
        msg = 'Seu nome é vazio. Vamos refazer a operação'
        if name:
            msg = 'Esse é mesmo o seu nome?'

        response = window.confirm(msg)

    document.select_one('.body_b') <= html.H1(f'Olar {name}')
    document.select_one('.body_b') <= html.BR()
Пример #14
0
def do(evt):
    card, primary, error, task_id = card_elements(evt)

    # Texto
    primary.text = 'Pronto!'
    error.text = 'Voltar'

    # Unbinding
    primary.unbind('click', do)
    error.unbind('click', cancel)

    # binds
    primary.bind('click', done)
    error.bind('click', back)
    change_state(task_id, 'doing')
    document.select_one('div.doing div.terminal-timeline') <= card
Пример #15
0
def display(evt):
    """Called on click on a filename in the file browser (left column)."""
    file_name = evt.target.text
    # Store current file
    current = document.select_one(".current")
    if current.text == file_name:
        rename(current)
        return
    position = editor.getCursorPosition()
    open_files[current.text] = {
        "content": editor.getValue(),
        "cursor": [position.row, position.column]
    }

    # Put highlight on new file
    current.classList.remove("current")
    evt.target.classList.add("current")

    # Load selected file
    new_file = open_files[file_name]
    editor.setValue(new_file["content"])
    editor.moveCursorTo(*new_file["cursor"], False)
    editor.scrollToLine(new_file["cursor"][0], True)
    editor.clearSelection()
    editor.focus()
Пример #16
0
def error_message():
    if not document.select('.terminal-alert-error'):
        error_div = html.DIV(
            'Preencha corretamente',
            Class='terminal-alert terminal-alert-error',
        )
        form_field = document.select_one('fieldset')
        form_field.insertBefore(error_div, form_field.firstChild)
Пример #17
0
def register_task(req):
    json_response = JSON.parse(req.text)
    div = document.select_one('div.todo div.terminal-timeline')

    if json_response['urgent']:
        div.insertBefore(html_todo(json_response), div.firstChild)
    else:
        div <= html_todo(json_response)
Пример #18
0
def create_progress_bar(event):
    if not document.select('.progress-bar'):
        bar_attrs = {
            'class': 'progress-bar-filled',
            'style': {
                'width': '0%'
            },
            'data-filled': 'Loading 0%',
            'id': 'bar',
        }
        progress = html.DIV(Class='progress-bar progress-bar-show-percent')
        progress <= html.DIV(**bar_attrs)
        document.select_one('#progress-bar') <= progress

        for value in range(0, 101):
            timer.set_timeout(partial(manage_progress, '#bar', value),
                              value * 50)
Пример #19
0
 def target_notice(self, target: str) -> None:
     """Highlight the character that's subject must focus on."""
     # self.send_marker(f"TARGET:{target}")
     target = document.select_one(f".p300-{target}-")
     target.style = {
         'color': '#00ff00',
         'opacity': 0.5,
         'font-weight': 'bold'
     }
Пример #20
0
def get_todos(req):
    todo_states = {'todo': html_todo, 'doing': html_doing, 'done': html_done}
    json = JSON.parse(req.text)
    for todo in json:
        div = document.select_one(f'div.{todo["state"]} div.terminal-timeline')
        if todo['urgent']:
            div.insertBefore(todo_states[todo['state']](todo), div.firstChild)
        else:
            div <= todo_states[todo['state']](todo)
Пример #21
0
def manage_progress(id, percent):
    bar = document.select_one(id)
    bar.style.width = f'{percent}%'
    bar['data-filled'] = f'Loading {percent}%'

    if percent == 0:
        text = document.select_one('#finished')
        text.remove()

    if percent == 100:
        progress_bar = document.select_one('#progress-bar')
        progress_bar.clear()
        progress_bar <= html.BR()
        alert = html.DIV('Carregamento concluído',
                         ID='finished',
                         Class='terminal-alert')
        alert.style.color = '#08D10E'
        alert.style.borderColor = '#08D10E'
        progress_bar <= alert
Пример #22
0
def exercice_08():
    r_value = randint(1, 50)

    def btn_creates(index):
        btn = document.select('#request')
        if btn:
            btn[0].remove()
        classes = (
            f'btn btn-{choice(["default", "primary", "error"])} btn-ghost')
        if index == r_value:
            classes += ' selenium'
            print('selenium')
        create_btn('fieldset', 'Botão', classes)

    document.select_one('.terminal-alert-error').remove()
    fieldset = document.select_one('fieldset')
    fieldset <= html.P(
        'Encontre a classe .selenium no elementos que estão surgindo')
    for index in range(0, 51):
        timer.set_timeout(partial(btn_creates, index), index * 500)
Пример #23
0
def task_register(evt):
    name = document.select_one('[name="name"]')
    desc = document.select_one('[name="desc"]')
    urgent = document.select_one('[name="urgent"]')

    if not name.value:
        error_message('Você esqueceu de preencher o campo "Nome"')
        return

    json = {
        'name': name.value,
        'description': desc.value,
        'urgent': urgent.checked,
        'state': 'todo',
    }

    name.value = ''
    desc.value = ''
    urgent.checked = False

    request('/task-register', json=json, bind=register_task)
Пример #24
0
def test_browser_worker():
    """Main script."""

    from browser import bind, document, worker

    result = document.select_one('.result')
    inputs = document.select("input")

    # Create a web worker, identified by a script id in this page.
    myWorker = worker.Worker("worker")

    @bind(inputs, "change")
    def change(evt):
        """Called when the value in one of the input fields changes."""
        # Send a message (here a list of values) to the worker
        myWorker.send([x.value for x in inputs])

    @bind(myWorker, "message")
    def onmessage(e):
        """Handles the messages sent by the worker."""
        result.text = e.data

    # Code of the worker script:
    """Web Worker script."""

    # In web workers, "window" is replaced by "self".
    from browser import bind, self

    @bind(self, "message")
    def message(evt):
        """Handle a message sent by the main script.
        evt.data is the message body.
        """
        try:
            result = int(evt.data[0]) * int(evt.data[1])
            workerResult = f'Result: {result}'
            # Send a message to the main script.
            # In the main script, it will be handled by the function bound to
            # the event "message" for the worker.
            self.send(workerResult)
        except ValueError:
            self.send('Please write two numbers')

    ## exercise event handlers
    for f in change, onmessage, message:
        f(evt)
Пример #25
0
def create_card(event):
    name, desc, checked, valid = read_form()
    if valid:
        todo = document.select_one('#todo')
        card = html.DIV(Class='terminal-card')
        card <= html.HEADER(name)
        card <= html.DIV(desc)
        buttons = html.DIV(Class='buttons')
        do = html.BUTTON('Fazer', Class='btn btn-primary btn-ghost do')
        cancel = html.BUTTON(
            'Cancelar', Class='btn btn-error btn-ghost cancel'
        )

        do.bind('click', doing_card)
        cancel.bind('click', cancel_card)

        buttons <= do
        buttons <= cancel
        card <= buttons

        timer.set_timeout(
            partial(create_card_timer, checked, todo, card), randint(1, 3000)
        )
Пример #26
0
def create_card(event):
    name, desc, checked, valid = read_form()
    if valid:
        todo = document.select_one('#todo')
        card = html.DIV(Class='terminal-card')
        card <= html.HEADER(name, Class='name')
        card <= html.DIV(desc, Class='description')
        buttons = html.DIV(Class='buttons')
        do = html.BUTTON('Fazer', Class='btn btn-primary btn-ghost do')
        cancel = html.BUTTON('Cancelar',
                             Class='btn btn-error btn-ghost cancel')

        do.bind('click', doing_card)
        cancel.bind('click', cancel_card)

        buttons <= do
        buttons <= cancel
        card <= buttons

        if checked:
            todo.insertBefore(card, todo.firstChild)
        else:
            todo <= card
    def __init__(self, *args, **kwargs):
        """"""
        super().__init__(*args, **kwargs)
        document.select_one('body') <= html.H1('Hello World')

        logging.warning('HOLA')
Пример #28
0
 def set_value(id, value):
     self.widgets[id] = [self._round(
         value[0]), self._round(value[1])]
     document.select_one(
         f'#value_{id}').html = f' {self.get_value(id)[0]}-{self.get_value(id)[1]} {unit}'
Пример #29
0
 def set_value(id, value):
     self.widgets[id] = self._round(value)
     document.select_one(
         f'#value_{id}').html = f' {self.get_value(id)} {unit}'
Пример #30
0
def check_error_message(evt):
    if (error := document.select_one('#error')):
        error.remove()