node filtering now scans also note content (using backend)

This commit is contained in:
azivner 2017-08-29 22:58:44 -04:00
parent 540c28eb3a
commit 361e69d236
4 changed files with 33 additions and 6 deletions

1
TODO
View file

@ -2,7 +2,6 @@
- conflict detection
Later:
- collapse all button
- context menu on items (add subnote etc.)
- drag and drop for notes (currently only keyboard)
- sync with sync server

View file

@ -14,6 +14,7 @@ from move_before_note import MoveBeforeNote
from move_to_note import MoveToNote
from notes import Notes
from notes_children import NotesChildren
from notes_search import NotesSearch
from sql import connect
from tree import Tree
@ -82,6 +83,7 @@ api.add_resource(MoveBeforeNote, '/notes/<string:note_id>/moveBefore/<string:bef
api.add_resource(MoveToNote, '/notes/<string:note_id>/moveTo/<string:parent_id>')
api.add_resource(ExpandedNote, '/notes/<string:note_id>/expanded/<int:expanded>')
api.add_resource(Tree, '/tree')
api.add_resource(NotesSearch, '/notes')
login_manager = LoginManager()
login_manager.init_app(app)

18
src/notes_search.py Normal file
View file

@ -0,0 +1,18 @@
from flask import request
from flask_restful import Resource
from sql import getResults
class NotesSearch(Resource):
def get(self):
search = '%' + request.args['search'] + '%'
result = getResults("select note_id from notes where note_title like ? or note_text like ?", [search, search])
noteIdList = [];
for res in result:
noteIdList.append(res['note_id'])
return noteIdList

View file

@ -185,16 +185,24 @@ $(function(){
});
$("input[name=search]").keyup(function (e) {
const match = $(this).val();
const searchString = $(this).val();
if (e && e.which === $.ui.keyCode.ESCAPE || $.trim(match) === "") {
if (e && e.which === $.ui.keyCode.ESCAPE || $.trim(searchString) === "") {
$("button#btnResetSearch").click();
return;
}
// Pass a string to perform case insensitive matching
const tree = $("#tree").fancytree("getTree");
tree.filterBranches(match);
if (e && e.which === $.ui.keyCode.ENTER) {
$.get(baseUrl + 'notes?search=' + searchString).then(resp => {
console.log("search: ", resp);
// Pass a string to perform case insensitive matching
const tree = $("#tree").fancytree("getTree");
tree.filterBranches(function(node) {
return resp.includes(node.data.note_id);
});
});
}
}).focus();
$("button#btnResetSearch").click(function () {