def load_script_plain(data_view, id): script_element = data_view.find(id=id) if not script_element: return None if script_element.name != 'script': raise AISParseError('Expected {} to be script instead of {}'.format( id, script_element.name)) return script_element.get_text()[4:-3] # always "<!--" and "-->"
def load_script(data_view, id): script_element = data_view.find(id=id) if not script_element: return None if script_element.name != 'script': raise AISParseError('Expected {} to be script instead of {}'.format( id, script_element.name)) text = script_element.get_text()[4:-3] # always "<!--" and "-->" return BeautifulSoup(text, 'lxml') # note: will be wrapped in <html> and <body>
def _ais_setDataView(self, id, body): data_view = body.find(id=id) container = data_view.contents[0] if container.get('id') != 'radioBox_container': raise AISParseError("Expected radioBox_container") if container.name == 'span': self.selected_index = int(container['selectedindex']) else: self._parse_options(container.find(id='radioBox_items'))
def _ais_setDataView(self, id, body): data_view = body.find(id=id) container = data_view.find(id='radioBox_container', recursive=False) if not container: raise AISParseError("Expected radioBox_container") if container.name == 'span': self.selected_index = int(container['selectedindex']) else: self._parse_options(container.find(id='radioBox_items'))
def __init__(self, dialog, id, type, parent_id, properties, element): self.dialog = dialog self.id = id self.component_type = type self.used_listeners_mask = properties.get('ulm', 0) self.enabled = properties.get('e', True) self.enabled_in_ui = properties.get('enabledInUI', True) self.visible = properties.get('v', True) self.visible_in_ui = properties.get('visibleInUI', True) self.title = properties.get('title') self.popup_menu = properties.get('pm') if properties.get('state', 1) == 2: raise AISParseError('STATE_DT is not supported')
def _parse_options(self, items): self.selected_index = -1 self.options = [] for index, td in enumerate(items.find_all('td')): if self.enabled and td['index'] != str(index): raise AISParseError( "RadioBox '{}' item #{} " "has unexpected index attribute.".format(self.id, index)) self.options.append(Option( title=td.label.get_text(), id=td.input.get('sid'), )) if td.input.has_attr('checked'): self.selected_index = index
def __init__(self, dialog_soup, element, dialog): self.dialog = dialog self.id = element['id'] self.jsct = element['jsct'] self.used_listeners_mask = int(element.get('usedlistenersmask', '0')) self.enabled = element.get('enabled', 'true') == 'true' self.enabled_in_ui = element.get('enabledinui', 'true') == 'true' self.visible = element.get('visible', 'true') == 'true' self.visible_in_ui = element.get('visibleinui', 'true') == 'true' self.title = element.get('_title') self.popup_menu = element.get('popupmenu') if int(element.get('state', '1')) == 2: raise AISParseError('STATE_DT is not supported') parent = element.find_parent(jsct=True) self.parent_id = parent['id'] if parent else None
def _update_data(self, data_view): self._update_selection_model_properties(data_view) data_tab_bodies = data_view.find(id='dataTabBodies') data_tab_bodies_fixed = data_view.find(id='dataTabBodiesFixed') if not data_tab_bodies: return self._update_data_tab_bodies_properties(data_view) self._update_data_position_properties(data_view) data_send_type = data_tab_bodies.get('datasendtype', 'update') if data_send_type == 'info': self.log('table', 'Updating info in {}'.format(self.id)) return if data_tab_bodies.find(id='dataTabTmp'): if data_tab_bodies.thead: raise AISParseError("Unsupported thead in dataTabTmp") if not data_tab_bodies.tbody: data_send_type = 'update' self._load_rows(data_tab_bodies, data_tab_bodies_fixed, replace=(data_send_type == 'update')) self._load_edit_models(data_view.find(id='dataTabEditModels'))
def _ais_setState(self, value): if int(value) == 2: raise AISParseError('STATE_DT is not supported')
def __init__(self, dialog_soup, element, dialog): super().__init__(dialog_soup, element, dialog) if (element.find(id='dt_selection') or element.find(id='dt_selection_area')): raise AISParseError("#dt_selection is not supported")