\
+
\
\
\
\
@@ -83,17 +84,41 @@ function checkHistoryList() {
function parseHistoryCallback(list, notehistory) {
checkHistoryList();
- list.sort('timestamp', {
- order: "desc"
- });
+ //sort by pinned then timestamp
+ list.sort('', {
+ sortFunction: function (a, b) {
+ var notea = a.values();
+ var noteb = b.values();
+ if (notea.pinned && !noteb.pinned) {
+ return -1;
+ } else if (!notea.pinned && noteb.pinned) {
+ return 1;
+ } else {
+ if (notea.timestamp > noteb.timestamp) {
+ return -1;
+ } else if (notea.timestamp < noteb.timestamp) {
+ return 1;
+ } else {
+ return 0;
+ }
+ }
+ }
+ });
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');
+ }
//parse link to element a
a.attr('href', '/' + values.id);
//parse tags
@@ -124,6 +149,34 @@ function parseHistoryCallback(list, notehistory) {
$('.ui-delete-modal-item').html(' ' + value.text + '
' + 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;
+ }
+ 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);
}
diff --git a/public/js/history.js b/public/js/history.js
index 82c145dab..b3656d896 100644
--- a/public/js/history.js
+++ b/public/js/history.js
@@ -111,12 +111,13 @@ function clearDuplicatedHistory(notehistory) {
return newnotehistory;
}
-function addHistory(id, text, time, tags, notehistory) {
+function addHistory(id, text, time, tags, pinned, notehistory) {
notehistory.push({
id: id,
text: text,
time: time,
- tags: tags
+ tags: tags,
+ pinned: pinned
});
return notehistory;
}
@@ -232,8 +233,16 @@ function renderHistory(view) {
function generateHistory(view, notehistory) {
var info = renderHistory(view);
+ //keep any pinned data
+ var pinned = false;
+ for (var i = 0; i < notehistory.length; i++) {
+ if (notehistory[i].id == info.id && notehistory[i].pinned) {
+ pinned = true;
+ break;
+ }
+ }
notehistory = removeHistory(info.id, notehistory);
- notehistory = addHistory(info.id, info.text, info.time, info.tags, notehistory);
+ notehistory = addHistory(info.id, info.text, info.time, info.tags, pinned, notehistory);
notehistory = clearDuplicatedHistory(notehistory);
return notehistory;
}