Add filter on database manage page

This commit is contained in:
Ruud
2014-02-12 21:14:06 +01:00
parent 061b79eac0
commit eb1556f3e8
3 changed files with 82 additions and 44 deletions
+4 -7
View File
@@ -21,13 +21,6 @@ class Database(object):
addEvent('database.setup_index', self.setupIndex)
def test():
time.sleep(1)
self.listDocuments()
addEvent('app.load', test)
def getDB(self):
if not self.db:
@@ -103,6 +96,10 @@ class Database(object):
for document in db.all('id'):
key = document.get('_t', 'unknown')
if kwargs.get('show') and key != kwargs.get('show'):
continue
if not results.get(key):
results[key] = []
results[key].append(document)
+54 -35
View File
@@ -94,50 +94,69 @@ pre {
width: 700px;
}
.database table {
font-size: 11px;
.database {
padding: 20px;
margin: 0;
}
.database table th {
text-align: left;
.database * {
margin: 0;
padding: 0;
}
.database table tr:hover {
position: relative;
z-index: 20;
.database .nav {
}
.database .nav li {
display: inline-block;
}
.database .nav li a {
padding: 5px;
}
.database table {
font-size: 11px;
}
.database table td {
vertical-align: top;
.database table th {
text-align: left;
}
.database table tr:hover {
position: relative;
z-index: 20;
}
.database table .id {
width: 100px;
}
.database table ._rev {
width: 60px;
}
.database table ._t {
width: 60px;
}
.database table .form {
width: 600px;
}
.database table form {
width: 600px;
}
.database textarea {
font-size: 12px;
width: 100%;
height: 200px;
.database table td {
vertical-align: top;
position: relative;
}
.database input[type=submit] {
display: block;
.database table .id {
width: 100px;
}
.database table ._rev {
width: 60px;
}
.database table ._t {
width: 60px;
}
.database table .form {
width: 600px;
}
.database table form {
width: 600px;
}
.database textarea {
font-size: 12px;
width: 100%;
height: 200px;
}
.database input[type=submit] {
display: block;
}
+24 -2
View File
@@ -91,12 +91,34 @@
}
});
var show_split = document.location.search.split('show='),
show = show_split.length > 1 ? show_split[1] : null;
new Request.JSON({
'url': api_base + 'database.list_documents',
'data': show ? 'show='+show : null,
'method': 'get',
'onSuccess': function(data){
var nav = new Element('ul.nav').grab(
new Element('li').grab(
new Element('a', {
'href': './',
'text': 'All'
})
)
).inject(c, 'before');
Object.each(data, function(documents, name){
if(documents.length > 0)
new Element('li').grab(
new Element('a', {
'href': './?show=' + name,
'text': name
})
).inject(nav)
var list = createList(name, documents);
if(list)
list.inject(c);
@@ -113,10 +135,10 @@
<title>Document Manager</title>
</head>
<body>
<body class="database">
<h1>Documents</h1>
<div id="container" class="database"></div>
<div id="container"></div>
</body>
</html>