Add ability to rearrange groups
This commit is contained in:
parent
192692d96b
commit
4a5a75cfa8
|
@ -5,6 +5,7 @@ $(document).ready(function () {
|
|||
function toggleEditing (e) {
|
||||
var btnEdit = $("#btnEdit");
|
||||
if (btnEdit.hasClass("btn-warning")) {
|
||||
$("#cardList").sortable("destroy");
|
||||
btnEdit.removeClass("btn-warning");
|
||||
$("#btnImport").prop("disabled", false);
|
||||
$("#btnAdd").prop("disabled", false);
|
||||
|
@ -17,6 +18,7 @@ function toggleEditing (e) {
|
|||
|
||||
$(".btnDel").hide(200);
|
||||
$(".btnDelGroup").hide(200);
|
||||
$(".dragGroupHandle").hide(200);
|
||||
$(".bookmark").off("click", disableLink);
|
||||
$(".btnDel").off("click", deleteBookmark);
|
||||
$(".btnDelGroup").off("click", deleteGroup);
|
||||
|
@ -25,14 +27,59 @@ function toggleEditing (e) {
|
|||
$("#btnImport").prop("disabled", true);
|
||||
$("#btnAdd").prop("disabled", true);
|
||||
|
||||
$("#cardList").sortable({
|
||||
group: { name: "bookmarksGroups" },
|
||||
draggable: ".bookmarkGroupContainer",
|
||||
handle: ".dragGroupHandle",
|
||||
animation: 100,
|
||||
onEnd: groupMoved
|
||||
});
|
||||
|
||||
$(".btnDel").show(200);
|
||||
$(".btnDelGroup").show(200);
|
||||
$(".dragGroupHandle").show(200);
|
||||
$(".bookmark").click(disableLink);
|
||||
$(".btnDel").click(deleteBookmark);
|
||||
$(".btnDelGroup").click(deleteGroup);
|
||||
}
|
||||
}
|
||||
|
||||
function groupMoved(dropEvt) {
|
||||
var newIndex = dropEvt.newIndex;
|
||||
var oldIndex = dropEvt.oldIndex;
|
||||
|
||||
var movedCard = $($(dropEvt.item).children()[0]);
|
||||
var groupName = movedCard.data("group-name");
|
||||
var groupIndex = movedCard.data("group-index");
|
||||
|
||||
if (oldIndex != newIndex) {
|
||||
var openDBRequest = window.indexedDB.open("bookmarks");
|
||||
|
||||
openDBRequest.onsuccess = function (e) {
|
||||
var db = e.target.result;
|
||||
|
||||
var groupsStore = db.transaction("Groups", "readwrite").objectStore("Groups");
|
||||
groupsStore.getAll().onsuccess = function (evt) {
|
||||
var groups = evt.target.result;
|
||||
|
||||
for (let g of groups) {
|
||||
if (g.groupIndex > oldIndex && g.groupIndex <= newIndex) {
|
||||
g.groupIndex--;
|
||||
groupsStore.put(g);
|
||||
}
|
||||
}
|
||||
|
||||
groups[oldIndex].groupIndex = newIndex;
|
||||
groupsStore.put(groups[oldIndex]);
|
||||
|
||||
db.close();
|
||||
}
|
||||
}
|
||||
|
||||
openDBRequest.onerror = function (err) { console.log(err); }
|
||||
}
|
||||
}
|
||||
|
||||
function deleteBookmark(e) {
|
||||
var item = $(this);
|
||||
var group = item.data("group");
|
||||
|
@ -85,7 +132,7 @@ function deleteGroup(e) {
|
|||
var groups = getEvt.target.result;
|
||||
|
||||
var lastIndex = -1;
|
||||
for (item of groups) {
|
||||
for (let item of groups) {
|
||||
if (item.groupIndex > groupIndex) {
|
||||
lastIndex = item.groupIndex;
|
||||
item.groupIndex--;
|
||||
|
|
Loading…
Reference in a new issue