$(function() {
/*
=========================================
| |
| Variables Definations |
| |
=========================================
*/
var Container = {
scrumboard: $('.scrumboard'),
card: $('.scrumboard .card')
}
// Containers
var scrumboard = Container.scrumboard;
var card = Container.card;
// Make Task Sortable
function $_taskSortable() {
$('[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-section');
},
update: function( event, ui ) {
console.log(ui);
console.log(ui.item);
}
});
}
// Click on Add Task button to open the modal and more..
function addTask() {
$('.addTask').on('click', function(event) {
event.preventDefault();
getParentElement = $(this).parents('[data-connect="sorting"]').attr('data-section');
$('.edit-task-title').hide();
$('.add-task-title').show();
$('[data-btnfn="addTask"]').show();
$('[data-btnfn="editTask"]').hide();
$('.addTaskAccordion .collapse').collapse('hide');
$('#addTaskModal').modal('show');
$_taskAdd(getParentElement);
});
}
// Get the range count value
$('#progress-range-counter').on('input', function(event) {
event.preventDefault();
/* Act on the event */
getRangeValue = $(this).val();
$('.range-count-number').html(getRangeValue);
$('.range-count-number').attr('data-rangeCountNumber', getRangeValue);
});
// Reset the input Values
$('#addTaskModal, #addListModal').on('hidden.bs.modal', function (e) {
$('input,textarea').val('');
$('input[type="range"]').val(0);
$('.range-count-number').attr('data-rangecountnumber', 0);
$('.range-count-number').html(0);
})
// change the modal Button class on accordion open
$('.addTaskAccordion .collapse').on('shown.bs.collapse', function () {
getClassOfAccordion = $(this).parents('.card').attr('class').split(' ')[1];
getClassOfAddTaskBtn = $(this).parents('.modal-content').find('[data-btnfn="addTask"]').attr('class').split(' ')[1];
removeClassOfAddTaskBtn = $(this).parents('.modal-content').find('[data-btnfn="addTask"]').removeClass(getClassOfAddTaskBtn);
var addClassInAddTaskBtn;
if (getClassOfAccordion === 'task-simple') {
addClassInAddTaskBtn = $(this).parents('.modal-content').find('[data-btnfn="addTask"]').addClass('task-simple');
}
if (getClassOfAccordion === 'task-text-progress') {
addClassInAddTaskBtn = $(this).parents('.modal-content').find('[data-btnfn="addTask"]').addClass('task-text-progress');
} else if (getClassOfAccordion === 'task-checkbox') {
addClassInAddTaskBtn = $(this).parents('.modal-content').find('[data-btnfn="addTask"]').addClass('task-checkbox');
} else if (getClassOfAccordion === 'task-image') {
addClassInAddTaskBtn = $(this).parents('.modal-content').find('[data-btnfn="addTask"]').addClass('task-image');
}
})
function $_taskAdd( getParent ) {
$('[data-btnfn="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()); //January is 0!
var yyyy = today.getFullYear();
var monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ];
today = dd + ' ' + monthNames[mm] + ', ' + yyyy;
var $_getParent = getParent;
if (getAddBtnClass === 'task-simple') {
var $_task = document.getElementById('s-simple-task').value;
$html = '
';
$("[data-section='"+$_getParent+"'] .connect-sorting-content").append($html);
} else if (getAddBtnClass === 'task-text-progress') {
var $_task = document.getElementById('s-task').value;
var $_taskText = document.getElementById('s-text').value;
var $_taskProgress = $('.range-count-number').attr('data-rangeCountNumber');
$html = ''+
'
'+
''+
'
'+
'
'+
'
'+ $_taskText +'
'+
'
'+
'
'+
'
'+$_taskProgress+'%
'+
'
'+
'
'+
'
'+
'
'+
' '+today+''+
'
'+
'
'+
'
'+
'
'+
'
'+
'
';
$("[data-section='"+$_getParent+"'] .connect-sorting-content").append($html);
} else if (getAddBtnClass === 'task-image') {
var $_task = document.getElementById('s-image-task').value;
$html = ''+
'
'+
'
'+
'
'+
'
'+
''+
'
'+
'
'+
'
'+
' '+today+''+
'
'+
'
'+
'
'+
'
'+
'
'+
'
';
$("[data-section='"+$_getParent+"'] .connect-sorting-content").append($html);
}
$('#addTaskModal').modal('hide');
$_taskEdit();
$_taskDelete();
});
}
$("#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").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'); //January is 0!
var yyyy = today.getFullYear();
today = mm + '.' + dd + '.' + yyyy;
var $_listTitle = document.getElementById('s-list-name').value;
var $_listTitleLower = $_listTitle.toLowerCase();
var $_listTitleRemoveWhiteSpaces = $_listTitleLower.split(' ').join('_') ;
var $_listSectionDataAttr = $_listTitleRemoveWhiteSpaces;
$html = '';
$(".task-list-section").append($html);
$('#addListModal').modal('hide');
$('#s-list-name').val('');
$_taskSortable();
$_editList()
$_deleteList();
$_clearList();
addTask();
$_taskEdit();
$_taskDelete();
})
// Delete the whole list including tasks at on click
function $_deleteList() {
$('.list-delete').off('click').on('click', function(event) {
event.preventDefault();
$(this).parents('[data-connect]').remove();
})
}
function $_editList() {
$('.list-edit').off('click').on('click', function(event) {
event.preventDefault();
var $_outerThis = $(this);
$('.add-list').hide();
$('.edit-list').show();
$('.add-list-title').hide();
$('.edit-list-title').show();
var $_listTitle = $_outerThis.parents('[data-connect="sorting"]').find('.s-heading').attr('data-listTitle');
$('#s-list-name').val($_listTitle);
$('.edit-list').off('click').on('click', function(event) {
var $_innerThis = $(this);
var $_getListTitle = document.getElementById('s-list-name').value;
var $_editedListTitle = $_outerThis.parents('[data-connect="sorting"]').find('.s-heading').html($_getListTitle);
var $_editedListTitleDataAttr = $_outerThis.parents('[data-connect="sorting"]').find('.s-heading').attr('data-listTitle', $_getListTitle);
$('#addListModal').modal('hide');
$('#s-list-name').val('');
})
$('#addListModal').modal('show');
$('#addListModal').on('hidden.bs.modal', function (e) {
$('#s-list-name').val('');
})
})
}
// Clear all task at on click
function $_clearList() {
$('.list-clear-all').off('click').on('click', function(event) {
event.preventDefault();
$(this).parents('[data-connect="sorting"]').find('.connect-sorting-content .card').remove();
})
}
// Delete the task on click
function $_taskDelete() {
$('.card .s-task-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');
});
})
}
function $_taskEdit() {
$('.card .s-task-edit').off('click').on('click', function(event) {
event.preventDefault();
var $_outerThis = $(this);
$('.add-task-title').hide();
$('.edit-task-title').show();
$('[data-btnfn="addTask"]').hide();
$('[data-btnfn="editTask"]').show();
if ($(this).parents('.card').hasClass('img-task')) {
var $_taskTitle = $_outerThis.parents('.card').find('h4').attr('data-taskTitle');
var get_value_title = $('.task-image #s-image-task').val($_taskTitle);
$('.task-image .collapse').collapse('show');
} else if ($(this).parents('.card').hasClass('simple-title-task')) {
var $_taskTitle = $_outerThis.parents('.card').find('h4').attr('data-taskTitle');
var get_value_title = $('.task-simple #s-simple-task').val($_taskTitle);
$('.task-simple .collapse').collapse('show');
} else if ($(this).parents('.card').hasClass('task-text-progress')) {
var $_taskTitle = $_outerThis.parents('.card').find('h4').attr('data-taskTitle');
var get_value_title = $('.task-text-progress #s-task').val($_taskTitle);
var $_taskText = $_outerThis.parents('.card').find('p:not(".progress-count")').attr('data-taskText');
var get_value_text = $('.task-text-progress #s-text').val($_taskText);
var $_taskProgress = $_outerThis.parents('.card').find('div.progress-bar').attr('data-progressState');
var get_value_progress = $('#progress-range-counter').val($_taskProgress);
var get_value_progressHtml = $('.range-count-number').html($_taskProgress);
var get_value_progressDataAttr = $('.range-count-number').attr('data-rangecountnumber', $_taskProgress);
$('.task-text-progress .collapse').collapse('show');
}
$('[data-btnfn="editTask"]').off('click').on('click', function(event) {
var $_innerThis = $(this);
if ($_outerThis.parents('.card').hasClass('img-task')) {
var $_task = document.getElementById('s-image-task').value;
var $_taskDataAttr = $_outerThis.parents('.card').find('h4').attr('data-taskTitle' , $_task);
var $_taskTitle = $_outerThis.parents('.card').find('h4').html($_task);
} else if ($_outerThis.parents('.card').hasClass('simple-title-task')) {
var $_task = document.getElementById('s-simple-task').value;
var $_taskDataAttr = $_outerThis.parents('.card').find('h4').attr('data-taskTitle' , $_task);
var $_taskTitle = $_outerThis.parents('.card').find('h4').html($_task);
} else if ($_outerThis.parents('.card').hasClass('task-text-progress')) {
var $_taskValue = document.getElementById('s-task').value;
var $_taskTextValue = document.getElementById('s-text').value;
var $_taskProgressValue = $('.range-count-number').attr('data-rangeCountNumber');
var $_taskDataAttr = $_outerThis.parents('.card').find('h4').attr('data-taskTitle' , $_taskValue);
var $_taskTitle = $_outerThis.parents('.card').find('h4').html($_taskValue);
var $_taskTextDataAttr = $_outerThis.parents('.card').find('p:not(".progress-count")').attr('data-tasktext' , $_taskTextValue);
var $_taskText = $_outerThis.parents('.card').find('p:not(".progress-count")').html($_taskTextValue);
var $_taskProgressStyle = $_outerThis.parents('.card').find('div.progress-bar').attr('style', "width: " + $_taskProgressValue +"%");
var $_taskProgressDataAttr = $_outerThis.parents('.card').find('div.progress-bar').attr('data-progressState', $_taskProgressValue);
var $_taskProgressAriaAttr = $_outerThis.parents('.card').find('div.progress-bar').attr('aria-valuenow', $_taskProgressValue);
var $_taskProgressProgressCount = $_outerThis.parents('.card').find('.progress-count').html($_taskProgressValue+"%");
}
$('#addTaskModal').modal('hide');
var setDate = $('.taskDate').html('');
$('.taskDate').hide();
})
$('#addTaskModal').modal('show');
})
}
$_editList();
$_deleteList();
$_clearList();
addTask();
$_taskEdit();
$_taskDelete();
$_taskSortable();
});