$(function () { // ---------------------------------------------------------------------- // draggble item // ---------------------------------------------------------------------- function kanbanSortable() { $('[data-sortable="true"]').sortable({ connectWith: ".connect-sorting-content", items: ".card", cursor: "move", placeholder: "ui-state-highlight", refreshPosition: true, stop: function (event, ui) { var parent_ui = ui.item.parent().attr("data-item"); }, update: function (event, ui) { console.log(ui); console.log(ui.item); }, }); } // ---------------------------------------------------------------------- // clear all task on click // ---------------------------------------------------------------------- function clearItem() { $(".list-clear-all") .off("click") .on("click", function (event) { event.preventDefault(); $(this) .parents('[data-action="sorting"]') .find(".connect-sorting-content .card") .remove(); }); } // ---------------------------------------------------------------------- // add task and open modal // ---------------------------------------------------------------------- function addKanbanItem() { $(".addTask").on("click", function (event) { event.preventDefault(); getParentElement = $(this) .parents('[data-action="sorting"]') .attr("data-item"); $(".edit-task-title").hide(); $(".add-task-title").show(); $('[data-btn-action="addTask"]').show(); $('[data-btn-action="editTask"]').hide(); // $('.addTaskAccordion .collapse').collapse('hide'); $("#addItemModal").modal("show"); kanban_add(getParentElement); }); } // ---------------------------------------------------------------------- // add default item // ---------------------------------------------------------------------- function kanban_add(getParent) { $('[data-btn-action="addTask"]') .off("click") .on("click", function (event) { getAddBtnClass = $(this).attr("class").split(" ")[1]; var today = new Date(); var dd = String(today.getDate()).padStart(2, "0"); var mm = String(today.getMonth()); var monthNames = [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", ]; today = dd + " " + monthNames[mm]; var $_getParent = getParent; var itemTitle = document.getElementById("kanban-title").value; var itemText = document.getElementById("kanban-text").value; item_html = '
' + '
' + '
' + '
' + '

' + itemTitle + "

" + "
" + '
' + '" + "
" + "
" + '
' + '
' + '

' + itemText + "

" + "
" + '
' + '
' + ' ' + today + "" + "
" + '
' + 'Design' + "
" + "
" + "
" + "
" + "
"; $("[data-item='" + $_getParent + "'] .connect-sorting-content").append( item_html ); $("#addItemModal").modal("hide"); kanbanEdit(); kanbanDelete(); }); } // ---------------------------------------------------------------------- // add item // ---------------------------------------------------------------------- $("#add-list") .off("click") .on("click", function (event) { event.preventDefault(); $(".add-list").show(); $(".edit-list").hide(); $(".edit-list-title").hide(); $(".add-list-title").show(); $("#addListModal").modal("show"); }); // ---------------------------------------------------------------------- // add list // ---------------------------------------------------------------------- $(".add-list") .off("click") .on("click", function (event) { var today = new Date(); var dd = String(today.getDate()).padStart(2, "0"); var mm = String(today.getMonth() + 1).padStart(2, "0"); today = mm + "." + dd; var itemTitle = document.getElementById("item-name").value; var itemNameLowercase = itemTitle.toLowerCase(); var itemNameRemoveWhiteSpace = itemNameLowercase.split(" ").join("_"); var itemDataAttr = itemNameRemoveWhiteSpace; item_html = '
' + '
' + '
' + '
' + itemTitle + "
" + '
' + '" + "
" + "
" + '
' + "
" + "
" + "
"; $(".task-list-section").append(item_html); $("#addListModal").modal("hide"); $("#item-name").val(""); kanbanSortable(); editItem(); deleteItem(); clearItem(); addKanbanItem(); kanbanEdit(); kanbanDelete(); // -------------------- // Tooltip // -------------------- var tooltipTriggerList = [].slice.call( document.querySelectorAll('[data-bs-toggle="tooltip"]') ); var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) { return new bootstrap.Tooltip(tooltipTriggerEl); }); }); // ---------------------------------------------------------------------- // edit item // ---------------------------------------------------------------------- function editItem() { $(".list-edit") .off("click") .on("click", function (event) { event.preventDefault(); var parentItem = $(this); $(".add-list").hide(); $(".edit-list").show(); $(".add-list-title").hide(); $(".edit-list-title").show(); var itemTitle = parentItem .parents('[data-action="sorting"]') .find(".item-head") .attr("data-item-title"); $("#item-name").val(itemTitle); $(".edit-list") .off("click") .on("click", function (event) { var $_innerThis = $(this); var $_getListTitle = document.getElementById("item-name").value; var $_editedListTitle = parentItem .parents('[data-action="sorting"]') .find(".item-head") .html($_getListTitle); var $_editedListTitleDataAttr = parentItem .parents('[data-action="sorting"]') .find(".item-head") .attr("data-item-title", $_getListTitle); $("#addListModal").modal("hide"); $("#item-name").val(""); }); $("#addListModal").modal("show"); $("#addListModal").on("hidden.bs.modal", function (e) { $("#item-name").val(""); }); }); } // ---------------------------------------------------------------------- // all list delete // ---------------------------------------------------------------------- function deleteItem() { $(".list-delete") .off("click") .on("click", function (event) { event.preventDefault(); $(this).parents("[data-action]").remove(); }); } // ---------------------------------------------------------------------- // Delete item on click // ---------------------------------------------------------------------- function kanbanDelete() { $(".card .kanban-item-delete") .off("click") .on("click", function (event) { event.preventDefault(); get_card_parent = $(this).parents(".card"); $("#deleteConformation").modal("show"); $('[data-remove="task"]').on("click", function (event) { event.preventDefault(); /* Act on the event */ get_card_parent.remove(); $("#deleteConformation").modal("hide"); }); }); } // ---------------------------------------------------------------------- // Edit item on click // ---------------------------------------------------------------------- function kanbanEdit() { $(".card .kanban-item-edit") .off("click") .on("click", function (event) { event.preventDefault(); var parentItem = $(this); $(".add-task-title").hide(); $(".edit-task-title").show(); $('[data-btn-action="addTask"]').hide(); $('[data-btn-action="editTask"]').show(); var itemKanbanTitle = parentItem .parents(".card") .find("h4") .attr("data-item-title"); var get_kanban_title = $(".task-text-progress #kanban-title").val( itemKanbanTitle ); var itemText = parentItem .parents(".card") .find('p:not(".progress-count")') .attr("data-item-text"); var get_kanban_text = $(".task-text-progress #kanban-text").val( itemText ); $('[data-btn-action="editTask"]') .off("click") .on("click", function (event) { var kanbanValueTitle = document.getElementById("kanban-title").value; var kanbanValueText = document.getElementById("kanban-text").value; var itemDataAttr = parentItem .parents(".card") .find("h4") .attr("data-item-title", kanbanValueTitle); var itemKanbanTitle = parentItem .parents(".card") .find("h4") .html(kanbanValueTitle); var itemTextDataAttr = parentItem .parents(".card") .find('p:not(".progress-count")') .attr("data-tasktext", kanbanValueText); var itemText = parentItem .parents(".card") .find('p:not(".progress-count")') .html(kanbanValueText); $("#addItemModal").modal("hide"); var setDate = $(".taskDate").html(""); $(".taskDate").hide(); }); $("#addItemModal").modal("show"); }); } editItem(); deleteItem(); clearItem(); addKanbanItem(); kanbanEdit(); kanbanDelete(); kanbanSortable(); });