Skip to content

Commit

Permalink
Add research files search option
Browse files Browse the repository at this point in the history
  • Loading branch information
gthole committed May 25, 2016
1 parent b8bc90c commit 4a4a2ae
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 11 deletions.
16 changes: 8 additions & 8 deletions gedgo/storages.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,14 @@ def exists(self, name):
except:
return False

def listdir(self, path):
meta = self.client.metadata(self.path(path))
return self._list_from_contents(meta['contents'])
def listdir(self, name):
meta = self.client.metadata(self.path(name))
return self._list_from_contents(self.path(name), meta['contents'])

def _list_from_contents(self, contents):
def _list_from_contents(self, path, contents):
directories, files = [], []
for entry in contents:
name = os.path.basename(entry['path'])
name = entry['path'][len(path) + 1:]
if entry['is_dir']:
directories.append(name)
else:
Expand All @@ -44,9 +44,9 @@ def size(self, name):
def url(self, name):
return self.client.media(self.path(name))['url']

def search(self, query):
contents = self.client.search(self.path(''), query)
return self._list_from_contents(contents)
def search(self, query, name=''):
contents = self.client.search(self.path(name), query)
return self._list_from_contents(self.path(name), contents)

def preview(self, name):
return self.client.thumbnail(self.path(name), 's')
Expand Down
2 changes: 1 addition & 1 deletion gedgo/templates/default/base.html
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
</li>
</ul>
<form class="navbar-form navbar-right" action="/gedgo/search/" method="get">
<input type="text" class="form-control" name="q" value="{% if query %}{{ query }}{% else %}search{% endif %}" onfocus="if (this.value=='search') this.value='';" >
<input type="text" class="form-control" name="q" value="{% if query %}{{ query }}{% endif %}" placeholder="search" >
</form>
</div>
<div class="navbar-collapse">
Expand Down
10 changes: 10 additions & 0 deletions gedgo/templates/default/research.html
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,16 @@
{% endfor %}
</ul>
</div>
{% if can_search %}
<hr>
<form>
<form class="navbar-form navbar-right" action="/gedgo/search/" method="get">
<input type="text" class="form-control" name="rq" value="{% if rquery %}{{ rquery }}{% endif %}" placeholder="search this folder">
</form>
{% if rquery %}<a href="/gedgo/research/{{ pathname }}"><i class="fa fa-times"></i> clear</a>{% endif %}

</form>
{% endif %}
<br />
{% endblock %}

Expand Down
10 changes: 8 additions & 2 deletions gedgo/views/research.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,10 @@ def research(request, pathname):
if '.' in name:
return serve_content(storage, name)
else:
directories, files = storage.listdir(name)
if request.GET.get('rq') and hasattr(storage, 'search'):
directories, files = storage.search(request.GET['rq'], name)
else:
directories, files = storage.listdir(name)
directories = [process_file(name, d, True) for d in directories]
files = [process_file(name, f, False) for f in files]

Expand All @@ -59,6 +62,9 @@ def research(request, pathname):
request,
'research.html',
{
'pathname': name,
'can_search': hasattr(storage, 'search'),
'rquery': request.GET.get('rq', ''),
'directories': directories,
'files': files,
'levels': levels
Expand All @@ -81,7 +87,7 @@ def process_file(name, p, is_dir=False):
return {
'type': type_,
'path': path.join(name, p),
'name': p,
'name': path.basename(p),
'preview': can_preview(p)
}

Expand Down

0 comments on commit 4a4a2ae

Please sign in to comment.