def renderDomains(domains): return ctx.tag[tags.table( _class="sortable", id="TdomainTable", cellspacing="0")[tags.thead( background="/images/gradMB.png")[tags.tr[tags.th( colformat="istr")["Domain"]]], tags.tbody(id="searchTableBody")[[ tags.tr[tags.td[tags.a( href="View/%s/" % domain[0])[domain[0]]]] for domain in domains ]]]]
def dataTable(self, headings, content, sortable=False, width=""): """ Produces a tabular listing which is either sortable or not. Sortable expects headings to be a list of tuples, but if it is not a list of tuples the 'string' type will be assumed for every cell """ if sortable: if isinstance(headings[0], tuple): header = [tags.th(colformat=j)[i] for j, i in headings] else: header = [tags.th(colformat='istr')[i] for i in headings] tclass = 'sortable' else: header = [tags.th[i] for i in headings] tclass = 'listing' cont = [ tags.thead(background="/images/gradMB.png")[tags.tr[header]], tags.tbody[ [tags.tr[[tags.td[col] for col in row]] for row in content], ] ] if width: return tags.table(cellspacing=0, _class=tclass, width=width)[cont] else: return tags.table(cellspacing=0, _class=tclass)[cont]
def renderUsers(users): return ctx.tag[tags.table( _class="sortable", id="TdomainTable", cellspacing="0")[tags.thead( background="/images/gradMB.png")[tags.tr[ tags.th(colformat="istr")["User"], tags.th(colformat="istr")["Server"]]], tags.tbody(id="searchTableBody")[[ tags.tr[tags.td[tags.a( href="/ServerUsers/Edit/%s/" % user[0])[user[1]]], tags.td[user[2]]] for user in users ]]]]
def gotUser(row): return ctx.tag[tags.table(_class="stdTable")[ tags.tr[tags.td( style="text-align:right;")[tags.strong["Name: "]], tags.td[row[3] or ""]], tags.tr[tags.td( style="text-align:right;")[tags.strong["Company: "]], tags.td[row[5] or ""]], tags.tr[tags.td( style="text-align:right;")[tags.strong["Email: "]], tags.td[row[4] or ""]], tags.tr[tags.td( style="text-align:right;")[tags.strong["Phone number: "]], tags.td[row[10] or ""]], tags.tr[tags.td( style="text-align:right;")[tags.strong["Address: "]], tags.td[row[6] or ""]], tags.tr[tags.td[""], tags.td[row[7] or ""]], tags.tr[tags.td[""], tags.td[row[8] or ""]], tags.tr[tags.td[""], tags.td[row[9] or ""]]], tags.a(href="/Account/")["Manage account"]]
def TabSwitcher(tabs, id="A"): tabNames = [i for j, i in tabs] tabLables = [i for i, j in tabs] closeTabs = ';\n'.join([ " hideElement('%s'); getElement('tab%s').style.color='#666666';" % (i, i) for i in tabNames ]) switchFunc = """ tabSwitcher%s = function (tab) { %s getElement('tab'+tab).style.color='#E710D8'; showElement(tab); createCookie('tabOpen%s', tab); return false; }; """ % (id, closeTabs, id) return [ tags.xml("""<script type="text/javascript"> function createCookie(name,value) { var date = new Date(); date.setTime(date.getTime()+(24*60*60*1000)); var expires = "; expires="+date.toGMTString(); document.cookie = name+"="+value+expires+"; path=/"; } function readCookie(name) { var nameEQ = name + "="; var ca = document.cookie.split(';'); for(var i=0;i < ca.length;i++) { var c = ca[i]; while (c.charAt(0)==' ') c = c.substring(1,c.length); if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); } return null; } createTabSwitcher%s = function() { %s var firstTab = '%s'; showElement(firstTab); getElement('tab'+firstTab).style.color='#E710D8'; try { var tab = readCookie('tabOpen%s'); if (tab) { %s showElement(tab); getElement('tab'+tab).style.color='#E710D8'; } } catch(dontCare){ showElement(firstTab); getElement('tab'+ firstTab).style.color='#E710D8'; } }; %s </script>""" % (id, closeTabs, tabNames[0], id, closeTabs, switchFunc)), tags.br, tags.br, tags.table(cellspacing=0, cellpadding=0)[tags.tr[[ tags. td(_class="tabTab", style= "padding:0;background-image: url(/images/tabcenter.png); background-repeat: repeat-x;", onclick="return tabSwitcher%s('%s');" % (id, j))[tags.a(id="tab" + j, href="#", style="color:#666666; text-decoration:none;", title="Switch to the tab: %s" % i, onclick="return tabSwitcher%s('%s');" % (id, j))[tags.img(src='/images/lefttab.png', align="absmiddle", style="border:none"), tags.strong[i], tags.img(src='/images/righttab.png', align="absmiddle", style="border:none")], ] for i, j in tabs ]]] ]