def render(self): self.req.content.report('header', tags.style(type='text/css')[ "@import '%s';" % self.req.get_path('assets/progress-bar/style.css') ]) assets.activate_jquery(self.req) self.req.content.report('header', tags.script(type='text/javascript', src=self.req.get_path('assets/progress-bar/support.js'))['']) element_id = self.attribs.get('element_id', 'progress-bar') attribs = self.attribs.copy() attribs.pop('element_id', None) content = tags.div(_id=element_id, _class='progress-field', **attribs)[[ tags.div(_class='progress-bar')[''], tags.div(_class='progress-text')[''] ]] if(self.callback_url): content += tags.script(type='text/javascript')[ 'waitForCompletion("%s", "%s", %d);' % (element_id, self.callback_url, self.interval) ] else: content += tags.script(type='text/javascript')[ 'setProgress("%s", %d, %d);' % (element_id, self.value, self.maxvalue) ] return content
def page_guide(self, pages, url): if(url.find('?') == -1): url += '?' else: from cgi import parse_qs from urllib import urlencode stub, query = url.split('?') query = parse_qs(query) if('page' in query): del query['page'] url = '%s?%s&' % (stub, urlencode(query, True)) if(pages.has_previous()): prev = tags.span()[tags.a(href="%spage=%d" % (url, pages.page - 1))['<< Previous']] else: prev = tags.span()['<< Previous'] if(pages.has_next()): next = tags.span()[tags.a(href="%spage=%d" % (url, pages.page + 1))['Next >>']] else: next = tags.span()['Next >>'] return tags.div(_class='page-guide')[[ tags.div()['Items %d – %d of %s shown.' % (pages.start_range, pages.end_range, pages.total_results)], tags.div()[prev, ' | ', next] ]]
def theme_note_list(self, form_id, element): content = '' for child_id in element: child = element[child_id] thm = child.get_theme(self.req, current=self) theme_func = getattr(thm, 'theme_' + child.attr('type', 'fieldset')) content += tags.div(_class="note")[theme_func(element.name, child)] return content
def theme_element(self, form_id, element, rendered_element): content = '' if not(element.attr('basic_element', False)): if(element.attr('required', False)): asterisk = tags.span(_class="required")['*'] else: asterisk = '' if(hasattr(element, 'label')): content += tags.label(_class="field-label")[[element.label, asterisk]] prefix = element.attr('prefix', False) if(callable(prefix)): content += prefix(element) elif(prefix): content += str(prefix) content += rendered_element suffix = element.attr('suffix', False) if(callable(suffix)): content += suffix(element) elif(suffix): content += str(suffix) if not(element.attr('basic_element', False)): if(hasattr(element, 'help')): content += tags.div(_class='form-help')[element.help] if(element.has_errors(recurse=False)): element_class = 'form-item form-error' else: element_class = 'form-item' item_id = 'form-item-%s' % element.name if(element.attr('deep_form_ids', False, recurse=True)): item_id = 'form-item-%s' % '-'.join(element.get_element_path()) content = tags.div(_class=element_class, _id=item_id)[content] return content
def theme_radiogroup(self, form_id, element): comparator = element.attr('sort', cmp) options_clone = copy.copy(element.attr('options', [])) option_keys, option_data = self._mangle_option_data(options_clone, comparator) def _create_radio(value, default_value): attribs = {} if(str(value) == str(default_value)): attribs['checked'] = None attribs['value'] = value attribs['type'] = 'radio' attribs['name'] = element.get_element_name() return tags.input(**attribs) element = [str(tags.label()[[ _create_radio(key, element.attr('value', None)), ' ', option_data[key] ]]) for key in option_keys] return tags.div(_class="radio-group")[''.join(element)]
def get_element(self, req, style, storable): """ @see: L{modu.editable.define.definition.get_element()} """ store = storable.get_store() assets.activate_jquery(req) req.content.report('header', tags.script(src=req.get_path('regex.js'))['']) frm = form.FormNode(self.name)(type='fieldset', style='full') frm['source']( label = 'source text', type = 'textarea', ) frm['matches']( type = 'markup', value = tags.div(id="result-breakdown")[''], ) frm['check']( type = 'submit', value = 'check', attributes = dict( id = 'regex-check-button', ) ) frm['script']( type = 'markup', value = tags.script(type='text/javascript')[""" $(document).ready(function(){ $('#regex-check-button').click(function(){ var url = $('#form-item-origin_url input').val(); var pattern = $('#form-item-item_match textarea').val(); testRegex(url, pattern); return false; }); }); """], ) return frm
def theme_body_text(self, form_id, element): return tags.div(_class="note-body")[element.attr('value', '')]