📄 rrd.py
字号:
result.append(searchBoxTemplate.searchbox(searchbox)) # Some debugging # result.append(html.Division(str(searchResults))) # all treeselect stuff... form = html.Form(action="", method='post') result.append(form) selectbox = TreeSelect() default_list = [] select = Select('cn_category', 'Category', multiple = True, multipleSize = 20, initTable='Cat', initTextColumn='descr', initIdColumn='catid', optionFormat = '$d ($v)', preSelected = searchResults['catids'] ) select2 = UpdateableSelect(select, # previous element 'cn_netbox', # element name 'Netbox', # title 'Netbox', # underlaying database table 'sysname', # text column 'netboxid', # id column 'catid', # foreign key (from previous element) default_list, # default options multiple=True, multipleSize=20, preSelected = searchResults['netboxes'] ) select3 = UpdateableSelect(select2, 'cn_datasource', 'Datasource', 'RrdDataSourceFile', 'descr', 'rrd_datasourceid', 'netboxid', multiple=True, multipleSize=20, preSelected = searchResults['datasources'], onchange=None) selectbox.addSelect(select) selectbox.addSelect(select2) selectbox.addSelect(select3) if req.form.has_key('cn_cancel'): raise RedirectError, urlbuilder.createUrl(division="rrd") if req.form.has_key('cn_commitDs') or req.form.has_key('cn_joinDs'): selectbox.update(req.form) try: pageobj = req.session['rrd'] except: pageobj = presenter.page() try: datasources = req.form['cn_datasource'] except KeyError: raise RedirectError, urlbuilder.createUrl(division="rrd") if type(datasources) != type([]): datasources = [datasources] # if the user selected join, we use only one presentation currentTimeFrame = pageobj.timeframe if req.form.has_key('cn_joinDs'): a = presenter.presentation(tf=currentTimeFrame) for ds in datasources: a.addDs(ds) pageobj.presentations.append(a) else: for ds in datasources: a = presenter.presentation(tf=currentTimeFrame) a.addDs(ds) pageobj.presentations.append(a) req.session['rrd'] = pageobj req.session.save() raise RedirectError, urlbuilder.createUrl(division="rrd") if req: selectbox.update(req.form) nameSpace = {'selectbox': selectbox} oldds = req.session['rrd'].presentations debug = {'debug': "%s Old Ds: %s" % (str(req.form.keys()), str(oldds))} template = TreeSelectTemplate() result.append(template.treeselect(selectbox)) result.append(html.Input(type='submit', name='cn_commitDs', value='Add selected')) result.append(html.Input(type='submit', name='cn_joinDs', value='Add and join')) result.append(html.Input(type='submit', name='cn_cancel', value='Cancel')) # result.append(html.Division(str(select2.selectedList))) return resultdef parseQuery(query): try: splitted = query.split('&') except: return d = {} for arg in splitted: try: key, val = arg.split('=') except: continue if d.has_key(key): d[key].append(val) else: d[key] = [val] return ddef showGraphs(session): result = html.Division() result.append(html.Header('IP Device Center', level=2)) result.append(html.Header('Statistics', level=3)) timeframes = html.Paragraph('Time frame: ') for tf in ['year', 'month', 'week', 'day', 'hour']: timeframes.append(html.Anchor(tf, href='timeframe?tf=%s' % tf)) if tf != 'hour': timeframes.append(' | ') result.append(timeframes) # Display previous link allowing to navigate in time prevnext = html.Paragraph() prevnext.append(html.Anchor('<< Previous', href='timeframe?tf=%s&tfIndex=%s' % ( session['rrd'].timeframe, int(session['rrd'].timeframeIndex) + 1))) if int(session['rrd'].timeframeIndex) > 1: prevnext.append(' | ') prevnext.append(html.Anchor('Next >>', href='timeframe?tf=%s&tfIndex=%s' % ( session['rrd'].timeframe, int(session['rrd'].timeframeIndex) - 1))) result.append(prevnext) form = html.Form(action='pageAction', method='post') result.append(form) table = html.SimpleTable(id='rrdgraphs', border=1) selectbox = html.Select(name = 'action', onChange='this.form.submit()') selectbox.append(html.Option('- Choose action -', value = 'dummy')) selectbox.append(html.Option('Remove selected', value = 'remove')) selectbox.append(html.Option('Join selected', value = 'join')) selectbox.append(html.Option('Split selected', value = 'split')) table.add('', html.TableCell(selectbox, colspan="2", _class="actionselecttop")) result.append(table) images = session['rrd'].presentations for index in range(len(images)): editCell = html.Division() editCell.append((html.Anchor('Remove', href='remove?id=%s' % index))) editCell.append(html.Break()) editCell.append(html.Anchor('Split', href='split?id=%s' % index)) editCell.append(html.Break()) editCell.append(html.Input(type='text', name='zoom', value='0', size='4')) editCell.append(html.Input(type='submit', name='cn_zoom', value='zoom')) table.add(html.Image(src=images[index].graphUrl(), name=index), editCell, html.Checkbox(name="selected", value=index)) table.add('', html.TableCell(selectbox, colspan='2', _class="actionselectbottom")) result.append(html.Anchor('Add datasource', href='add')) #result.append(html.Division("Timeframe: %s, timeframeIndex: %s" % (session['rrd'].timeframe, # session['rrd'].timeframeIndex))) return resultdef datasources(query, session): page = presenter.page() if not query.has_key('id'): return id = query['id'] timeframe = query.get('tf', ['week'])[0] for i in id: pres = presenter.presentation(tf=timeframe, ds=i) page.presentations.append(pres) session['rrd'] = page return showGraphs(session) def graph(req,id): conf = nav.config.readConfig(configfile) filename = "%s%s%s" % (conf['fileprefix'],id, conf['filesuffix']) req.content_type = 'image/gif' req.send_http_header() f = open(filename) req.write(f.read()) f.close() def save(session, name): conn = nav.db.getConnection('navprofile', 'navprofile') key="rrdPage" user = session['user'] result = html.Division("user: %s " %user) property = navprofiles.Accountproperty.getAll(where="accountid=%s AND property='%s'" % (user, key)) result.append(html.Division("len(prop) = %s" % len(property))) if property: oldPages = property[0] try: value = eval(oldPages.value) except: value = [] else: result.append(html.Division("Creating new row")) oldPages = navprofiles.Accountproperty() oldPages.account = user oldPages.property = key value = [] newPages = session['rrd'] newPages.name = name result.append(html.Division("New pages: %s" % newPages.serialize())) oldValue = value result.append(html.Division("Old pages: %s" % value)) result.append(html.Division("Name: %s" % name)) value.append(newPages.serialize()) oldPages.value = str(value) a = oldPages.save() oldPages._saveDB() result.append(html.Division("hei %s" % a)) result.append(html.Division("To save: %s" % value)) sql = """UPDATE accountproperty set accountid=%s, property='%s', value=%s WHERE accountid=%s AND property='%s'""" \ % (user, key, nav.db.escape(str(value)), user, key) result.append(sql) cursor= conn.cursor() cursor.execute(sql) return resultdef load(session, name): user = session['user'] key="rrdPage" conn = nav.db.getConnection('navprofile', 'navprofile') property = navprofiles.Accountproperty.getAll(where="accountid=%s AND property='%s'" % (user, key)) if property: property = property[0] else: raise "hei" pages = eval(property.value) #raise str(property.value) for page in pages: if page['name'] == name: session['rrd'] = presenter.page(page) session.save() return raise "hmm: %s" % len(pages)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -