Add ability to rearrange groups
This commit is contained in:
		
							parent
							
								
									192692d96b
								
							
						
					
					
						commit
						4a5a75cfa8
					
				| 
						 | 
					@ -5,6 +5,7 @@ $(document).ready(function () {
 | 
				
			||||||
function toggleEditing (e) {
 | 
					function toggleEditing (e) {
 | 
				
			||||||
	var btnEdit = $("#btnEdit");
 | 
						var btnEdit = $("#btnEdit");
 | 
				
			||||||
	if (btnEdit.hasClass("btn-warning")) {
 | 
						if (btnEdit.hasClass("btn-warning")) {
 | 
				
			||||||
 | 
							$("#cardList").sortable("destroy");
 | 
				
			||||||
		btnEdit.removeClass("btn-warning");
 | 
							btnEdit.removeClass("btn-warning");
 | 
				
			||||||
		$("#btnImport").prop("disabled", false);
 | 
							$("#btnImport").prop("disabled", false);
 | 
				
			||||||
		$("#btnAdd").prop("disabled", false);
 | 
							$("#btnAdd").prop("disabled", false);
 | 
				
			||||||
| 
						 | 
					@ -17,6 +18,7 @@ function toggleEditing (e) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		$(".btnDel").hide(200);
 | 
							$(".btnDel").hide(200);
 | 
				
			||||||
		$(".btnDelGroup").hide(200);
 | 
							$(".btnDelGroup").hide(200);
 | 
				
			||||||
 | 
							$(".dragGroupHandle").hide(200);
 | 
				
			||||||
		$(".bookmark").off("click", disableLink);
 | 
							$(".bookmark").off("click", disableLink);
 | 
				
			||||||
		$(".btnDel").off("click", deleteBookmark);
 | 
							$(".btnDel").off("click", deleteBookmark);
 | 
				
			||||||
		$(".btnDelGroup").off("click", deleteGroup);
 | 
							$(".btnDelGroup").off("click", deleteGroup);
 | 
				
			||||||
| 
						 | 
					@ -25,14 +27,59 @@ function toggleEditing (e) {
 | 
				
			||||||
		$("#btnImport").prop("disabled", true);
 | 
							$("#btnImport").prop("disabled", true);
 | 
				
			||||||
		$("#btnAdd").prop("disabled", true);
 | 
							$("#btnAdd").prop("disabled", true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							$("#cardList").sortable({
 | 
				
			||||||
 | 
								group: { name: "bookmarksGroups" },
 | 
				
			||||||
 | 
								draggable: ".bookmarkGroupContainer",
 | 
				
			||||||
 | 
								handle: ".dragGroupHandle",
 | 
				
			||||||
 | 
								animation: 100,
 | 
				
			||||||
 | 
								onEnd: groupMoved
 | 
				
			||||||
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		$(".btnDel").show(200);
 | 
							$(".btnDel").show(200);
 | 
				
			||||||
		$(".btnDelGroup").show(200);
 | 
							$(".btnDelGroup").show(200);
 | 
				
			||||||
 | 
							$(".dragGroupHandle").show(200);
 | 
				
			||||||
		$(".bookmark").click(disableLink);
 | 
							$(".bookmark").click(disableLink);
 | 
				
			||||||
		$(".btnDel").click(deleteBookmark);
 | 
							$(".btnDel").click(deleteBookmark);
 | 
				
			||||||
		$(".btnDelGroup").click(deleteGroup);
 | 
							$(".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) {
 | 
					function deleteBookmark(e) {
 | 
				
			||||||
	var item = $(this);
 | 
						var item = $(this);
 | 
				
			||||||
	var group = item.data("group");
 | 
						var group = item.data("group");
 | 
				
			||||||
| 
						 | 
					@ -85,7 +132,7 @@ function deleteGroup(e) {
 | 
				
			||||||
			var groups = getEvt.target.result;
 | 
								var groups = getEvt.target.result;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			var lastIndex = -1;
 | 
								var lastIndex = -1;
 | 
				
			||||||
			for (item of groups) {
 | 
								for (let item of groups) {
 | 
				
			||||||
				if (item.groupIndex > groupIndex) {
 | 
									if (item.groupIndex > groupIndex) {
 | 
				
			||||||
					lastIndex = item.groupIndex;
 | 
										lastIndex = item.groupIndex;
 | 
				
			||||||
					item.groupIndex--;
 | 
										item.groupIndex--;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue