/* * Document : be_pages_generic_todo.js * Author : pixelcave * Description: Custom JS code used in Todo Page in Backend */ var BeTasks = function() { // Helper variables - set in initTasks() var taskIdNext, tasks, taskForm, taskInput, taskInputVal, taskList, taskListStarred, taskListCompleted, taskBadge, taskBadgeStarred, taskBadgeCompleted; // Set variables and default functionality var initTasks = function(){ tasks = jQuery('.js-tasks'); taskForm = jQuery('#js-task-form'); taskInput = jQuery('#js-task-input'); taskList = jQuery('.js-task-list'); taskListStarred = jQuery('.js-task-list-starred'); taskListCompleted = jQuery('.js-task-list-completed'); taskBadge = jQuery('.js-task-badge'); taskBadgeStarred = jQuery('.js-task-badge-starred'); taskBadgeCompleted = jQuery('.js-task-badge-completed'); // Set your own next new task id based on your database setup taskIdNext = 10; // Update badges badgesUpdate(); // New task form submission taskForm.on('submit', function(e){ e.preventDefault(); // Get input value taskInputVal = taskInput.prop('value'); // Check if the user entered something if ( taskInputVal ) { // Add Task taskAdd(taskInputVal); // Clear and focus input field taskInput.prop('value', '').focus(); } }); // Task status update on checkbox click var stask, staskId; tasks.on('click', '.js-task-status', function(e){ e.preventDefault(); stask = jQuery(this).closest('.js-task'); staskId = stask.attr('data-task-id'); // Check task status and toggle it if ( stask.attr('data-task-completed') === 'true' ) { taskSetActive( staskId ); } else { taskSetCompleted( staskId ); } }); // Task starred status update on star click var ftask, ftaskId; tasks.on('click', '.js-task-star', function(){ ftask = jQuery(this).closest('.js-task'); ftaskId = ftask.attr('data-task-id'); // Check task starred status and toggle it if ( ftask.attr('data-task-starred') === 'true' ) { taskStarRemove( ftaskId ); } else { taskStarAdd( ftaskId ); } }); // Remove task on remove button click tasks.on('click', '.js-task-remove', function(){ ftask = jQuery(this).closest('.js-task'); ftaskId = ftask.attr('data-task-id'); // Remove task taskRemove( ftaskId ); }); }; // Update badges var badgesUpdate = function() { taskBadge.text( taskList.children().length || '' ); taskBadgeStarred.text( taskListStarred.children().length || '' ); taskBadgeCompleted.text( taskListCompleted.children().length || '' ); }; // Add a task var taskAdd = function( taskContent ){ // Add it to the task list taskList .prepend( '
| ' + '' + ' | ' + '' + jQuery('').text(taskContent).html() + ' | ' + '' + ' ' + '' + ' | ' + '