diff options
-rw-r--r-- | lib/models/note.js | 2 | ||||
-rw-r--r-- | public/js/cover.js | 176 |
2 files changed, 100 insertions, 78 deletions
diff --git a/lib/models/note.js b/lib/models/note.js index 7fdc5645..05ed04c0 100644 --- a/lib/models/note.js +++ b/lib/models/note.js @@ -285,7 +285,7 @@ module.exports = function (sequelize, DataTypes) { if (/^tags/gmi.test($(value).text())) { var codes = $(value).find("code"); for (var i = 0; i < codes.length; i++) { - var text = $(codes[i]).html().trim(); + var text = S($(codes[i]).text().trim()).stripTags().s; if (text) rawtags.push(text); } } diff --git a/public/js/cover.js b/public/js/cover.js index 515c8827..30a8e5c8 100644 --- a/public/js/cover.js +++ b/public/js/cover.js @@ -44,7 +44,9 @@ var options = { </li>', page: 18, plugins: [ - ListPagination({}) + ListPagination({ + outerWindow: 1 + }) ] }; var historyList = new List('history', options); @@ -133,94 +135,110 @@ function parseHistoryCallback(list, notehistory) { } } }); + // parse filter tags var filtertags = []; - $(".item").each(function (key, value) { - var a = $(this).closest("a"); - var pin = $(this).find(".ui-history-pin"); - var id = a.siblings("span").html(); - var tagsEl = $(this).find(".tags"); - var item = historyList.get('id', id); - if (item.length > 0 && item[0]) { - var values = item[0].values(); - //parse pinned - if (values.pinned) { - pin.addClass('active'); - } else { - pin.removeClass('active'); - } + for (var i = 0, l = list.items.length; i < l; i++) { + var tags = list.items[i]._values.tags; + if (tags && tags.length > 0) { + for (var j = 0; j < tags.length; j++) { + //push info filtertags if not found + var found = false; + if (filtertags.indexOf(tags[j]) != -1) + found = true; + if (!found) + filtertags.push(tags[j]); + } + } + } + buildTagsFilter(filtertags); +} + +// update items whenever list updated +historyList.on('updated', function (e) { + for (var i = 0, l = e.items.length; i < l; i++) { + var item = e.items[i]; + if (item.visible()) { + var itemEl = $(item.elm); + var values = item._values; + var a = itemEl.find("a"); + var pin = itemEl.find(".ui-history-pin"); + var tagsEl = itemEl.find(".tags"); //parse link to element a a.attr('href', serverurl + '/' + values.id); + //parse pinned + if (values.pinned) { + pin.addClass('active'); + } else { + pin.removeClass('active'); + } //parse tags - if (values.tags) { - var tags = values.tags; - if (tags.length > 0) { - var labels = []; - for (var j = 0; j < tags.length; j++) { - //push info filtertags if not found - var found = false; - if (filtertags.indexOf(tags[j]) != -1) - found = true; - if (!found) - filtertags.push(tags[j]); - //push into the item label - labels.push("<span class='label label-default'>" + tags[j] + "</span>"); - } - tagsEl.html(labels.join(' ')); + var tags = values.tags; + if (tags && tags.length > 0 && tagsEl.children().length <= 0) { + var labels = []; + for (var j = 0; j < tags.length; j++) { + //push into the item label + labels.push("<span class='label label-default'>" + tags[j] + "</span>"); } + tagsEl.html(labels.join(' ')); } } - }); - $(".ui-history-close").click(function (e) { - e.preventDefault(); - var id = $(this).closest("a").siblings("span").html(); - var value = list.get('id', id)[0].values(); - $('.ui-delete-modal-msg').text('Do you really want to delete below history?'); - $('.ui-delete-modal-item').html('<i class="fa fa-file-text"></i> ' + value.text + '<br><i class="fa fa-clock-o"></i> ' + value.time); - clearHistory = false; - deleteId = id; - }); - $(".ui-history-pin").click(function (e) { - e.preventDefault(); - var $this = $(this); - var id = $this.closest("a").siblings("span").html(); - var item = list.get('id', id)[0]; - var values = item.values(); - var pinned = values.pinned; - if (!values.pinned) { - pinned = true; - item._values.pinned = true; - } else { - pinned = false; - item._values.pinned = false; - } - checkIfAuth(function () { - postHistoryToServer(id, { - pinned: pinned - }, function (err, result) { - if (!err) { - if (pinned) - $this.addClass('active'); - else - $this.removeClass('active'); - } - }); - }, function () { - getHistory(function (notehistory) { - for(var i = 0; i < notehistory.length; i++) { - if (notehistory[i].id == id) { - notehistory[i].pinned = pinned; - break; - } - } - saveHistory(notehistory); + } + $(".ui-history-close").off('click'); + $(".ui-history-close").on('click', historyCloseClick); + $(".ui-history-pin").off('click'); + $(".ui-history-pin").on('click', historyPinClick); +}); + +function historyCloseClick(e) { + e.preventDefault(); + var id = $(this).closest("a").siblings("span").html(); + var value = historyList.get('id', id)[0]._values; + $('.ui-delete-modal-msg').text('Do you really want to delete below history?'); + $('.ui-delete-modal-item').html('<i class="fa fa-file-text"></i> ' + value.text + '<br><i class="fa fa-clock-o"></i> ' + value.time); + clearHistory = false; + deleteId = id; +} + +function historyPinClick(e) { + e.preventDefault(); + var $this = $(this); + var id = $this.closest("a").siblings("span").html(); + var item = historyList.get('id', id)[0]; + var values = item._values; + var pinned = values.pinned; + if (!values.pinned) { + pinned = true; + item._values.pinned = true; + } else { + pinned = false; + item._values.pinned = false; + } + checkIfAuth(function () { + postHistoryToServer(id, { + pinned: pinned + }, function (err, result) { + if (!err) { if (pinned) $this.addClass('active'); else $this.removeClass('active'); - }); - }) + } + }); + }, function () { + getHistory(function (notehistory) { + for(var i = 0; i < notehistory.length; i++) { + if (notehistory[i].id == id) { + notehistory[i].pinned = pinned; + break; + } + } + saveHistory(notehistory); + if (pinned) + $this.addClass('active'); + else + $this.removeClass('active'); + }); }); - buildTagsFilter(filtertags); } //auto update item fromNow every minutes @@ -328,6 +346,8 @@ $(".ui-refresh-history").click(function () { var lastKeyword = $('.search').val(); $('.search').val(''); historyList.search(); + $('#history-list').slideUp('fast'); + $('.pagination').slideUp('fast'); resetCheckAuth(); historyList.clear(); @@ -338,6 +358,8 @@ $(".ui-refresh-history").click(function () { historyList.search(lastKeyword); $('.search').val(lastKeyword); checkHistoryList(); + $('#history-list').slideDown('fast'); + $('.pagination').slideDown('fast'); }); }); |