/*=========================================================================================
File Name: app-todo.js
Description: app-todo
----------------------------------------------------------------------------------------
Item name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
Author: PIXINVENT
Author URL: http://www.themeforest.net/user/pixinvent
==========================================================================================*/
$(function () {
"use strict";
var $curr_title, $curr_desc, $curr_info, $curr_fav, $curr_chipVal;
// if it is not touch device
if (!$.app.menu.is_touch_device()) {
// --------------------------------------------
// Sidebar menu scrollbar
// --------------------------------------------
if ($('.todo-application .sidebar-menu-list').length > 0) {
var content = new PerfectScrollbar('.sidebar-menu-list', {
theme: "dark"
});
}
// --------------------------------------------
// Todo task list scrollbar
// --------------------------------------------
if ($('.todo-application .todo-task-list').length > 0) {
var sidebar_todo = new PerfectScrollbar('.todo-task-list', {
theme: "dark"
});
}
}
// if it is a touch device
else {
$(".sidebar-menu-list").css("overflow", "scroll");
$(".todo-task-list").css("overflow", "scroll");
}
// Info star click
$(document).on("click", ".todo-application .todo-item-info i", function (e) {
$(this).parent('.todo-item-info').toggleClass("success");
e.stopPropagation();
});
// Favorite star click
$(document).on("click", ".todo-application .todo-item-favorite i", function (e) {
$(this).parent('.todo-item-favorite').toggleClass("warning");
e.stopPropagation();
});
// Main menu toggle should hide app menu
$('.menu-toggle').on('click', function (e) {
$('.app-content .sidebar-left').removeClass('show');
$('.app-content .app-content-overlay').removeClass('show');
});
// On sidebar close click
$(".todo-application .sidebar-close-icon").on('click', function () {
$('.sidebar-left').removeClass('show');
$('.app-content-overlay').removeClass('show');
});
// Todo sidebar toggle
$('.sidebar-toggle').on('click', function (e) {
e.stopPropagation();
$('.app-content .sidebar-left').toggleClass('show');
$('.app-content .app-content-overlay').addClass('show');
});
$('.app-content .app-content-overlay').on('click', function (e) {
$('.app-content .sidebar-left').removeClass('show');
$('.app-content .app-content-overlay').removeClass('show');
});
// Add class active on click of sidebar filters list
$(".todo-application .list-group-filters a").on('click', function () {
if ($('.todo-application .list-group-filters a').hasClass('active')) {
$('.todo-application .list-group-filters a').removeClass('active');
}
$(this).addClass("active");
});
// For chat sidebar on small screen
if ($(window).width() > 992) {
if ($('.todo-application .app-content-overlay').hasClass('show')) {
$('.todo-application .app-content-overlay').removeClass('show');
}
}
// On add new item, clear modal popup fields
$(".add-task button").on('click', function (e) {
$('.modal .new-todo-item-title').val("");
$('.modal .new-todo-item-desc').val("");
$('.modal .dropdown-menu input').prop("checked", false);
if ($('.modal .todo-item-info').hasClass('success')) { $('.modal .todo-item-info').removeClass('success') }
if ($('.modal .todo-item-favorite').hasClass('warning')) { $('.modal .todo-item-favorite').removeClass('warning') }
});
// To add new todo list item
$(".add-todo-item").on('click', function (e) {
e.preventDefault();
var todoInfo = "",
todoFav = "",
todoChip = "";
var todoTitle = $(".new-todo-item-title").val();
var todoDesc = $(".new-todo-item-desc").val();
if ($(".modal.show .todo-item-info").hasClass('success')) {
todoInfo = " success";
}
if ($(".modal.show .todo-item-favorite").hasClass('warning')) {
todoFav = " warning";
}
// Chip calculation loop
var selected = $('.modal .dropdown-menu input:checked');
selected.each(function () {
todoChip += '
' +
'
' +
' ' + $(this).data('value') + '' +
'
' +
'
';
});
// HTML Output
if (todoTitle != "") {
$(".todo-task-list-wrapper").append('
' +
'
' +
'
' +
'
' +
'
' +
'' +
'' +
'' +
'' +
'' +
'' +
'
' +
'
' + todoTitle + '
' +
'
' +
'
' + todoChip + '
' +
'
' +
'
' +
'' +
'' +
'' +
'
' +
'
' +
'
' + todoDesc + '
' +
'
');
}
$('#form-edit-todo .edit-todo-item-title').val(todoTitle);
$('#form-edit-todo .edit-todo-item-desc').val(todoDesc);
$('#form-edit-todo .dropdown-menu input').prop("checked", false);
if ($('#form-edit-todo .edit-todo-item-info').hasClass('success')) { $('#form-edit-todo .edit-todo-item-info').addClass('success') }
if ($('#form-edit-todo .edit-todo-item-favorite').hasClass('warning')) { $('#form-edit-todo .edit-todo-item-favorite').addClass('warning') }
});
// To update todo list item
$(document).on('click', ".todo-task-list-wrapper .todo-item", function (e) {
// Saving all values in variable
$curr_title = $(this).find('.todo-title'); // Set path for Current Title, use this variable when updating title
$curr_desc = $(this).find('.todo-desc'); // Set path for Current Description, use this variable when updating Description
$curr_info = $(this).find('.todo-item-info'); // Set path for Current info, use this variable when updating info
$curr_fav = $(this).find('.todo-item-favorite'); // Set path for Current favorite, use this variable when updating favorite
$curr_chipVal = $(this).find('.chip-wrapper'); // Set path for Chips, use this variable when updating chip value
var $title = $(this).find('.todo-title').html();
var $desc = $(this).find('.todo-desc').html();
var $info = $(this).find('.todo-item-info');
var $fav = $(this).find('.todo-item-favorite');
$('#form-edit-todo .dropdown-menu input').prop("checked", false);
// Checkbox checked as per chips
var selected = $(this).find('.chip');
selected.each(function () {
var chipVal = $(this).find('.chip-text').data('value');
$('#form-edit-todo .dropdown-menu input[data-value="' + chipVal + '"]').prop("checked", true);
});
// apply all variable values to fields
$('#form-edit-todo .edit-todo-item-title').val($title);
$('#form-edit-todo .edit-todo-item-desc').val($desc);
if ($('#form-edit-todo .todo-item-info').hasClass('success')) { $('#form-edit-todo .todo-item-info').removeClass('success') }
if ($('#form-edit-todo .edit-todo-item-favorite').hasClass('warning')) { $('#form-edit-todo .edit-todo-item-favorite').removeClass('warning') }
if ($($info).hasClass('success')) {
$('#form-edit-todo .todo-item-info').addClass('success');
}
if ($($fav).hasClass('warning')) {
$('#form-edit-todo .edit-todo-item-favorite').addClass('warning');
}
});
// Updating Data Values to Fields
$('.update-todo-item').on('click', function () {
var $edit_title = $('#form-edit-todo .edit-todo-item-title').val();
var $edit_desc = $('#form-edit-todo .edit-todo-item-desc').val();
var $edit_info = $('#form-edit-todo .todo-item-info i');
var $edit_fav = $('#form-edit-todo .todo-item-favorite i');
$($curr_title).text($edit_title);
$($curr_desc).text($edit_desc);
if ($($curr_info).hasClass('success')) { $($curr_info).removeClass('success') }
if ($($curr_fav).hasClass('warning')) { $($curr_fav).removeClass('warning') }
if ($($edit_info).parent('.todo-item-info').hasClass('success')) {
$curr_info.addClass('success');
}
if ($($edit_fav).parent('.todo-item-favorite').hasClass('warning')) {
$curr_fav.addClass('warning');
}
// Chip calculation loop
var $edit_selected = $('#form-edit-todo .dropdown-menu input:checked');
var $edit_todoChip = "";
$edit_selected.each(function () {
$edit_todoChip += '
' +
'
' +
' ' + $(this).data('value') + '' +
'
' +
'
';
});
$curr_chipVal.empty();
$($curr_chipVal).append($edit_todoChip);
});
//EVENT DELETION
$(document).on('click', '.todo-item-delete', function (e) {
var item = this;
e.stopPropagation();
$(item).closest('.todo-item').remove();
})
// Complete task strike through
$(document).on('click', '.todo-item input', function (event) {
event.stopPropagation();
$(this).closest('.todo-item').toggleClass("completed");
});
// Filter
$("#todo-search").on("keyup", function () {
var value = $(this).val().toLowerCase();
if (value != "") {
$(".todo-item").filter(function () {
$(this).toggle($(this).text().toLowerCase().indexOf(value) > -1);
});
var tbl_row = $(".todo-item:visible").length; //here tbl_test is table name
//Check if table has row or not
if (tbl_row == 0) {
if (!$('.no-results').hasClass('show')) {
$('.no-results').addClass('show');
}
}
else {
$('.no-results').removeClass('show');
}
}
else {
// If filter box is empty
$(".todo-item").show();
if ($('.no-results').hasClass('show')) {
$('.no-results').removeClass('show');
}
}
});
});
$(window).on("resize", function () {
// remove show classes from sidebar and overlay if size is > 992
if ($(window).width() > 992) {
if ($('.app-content .app-content-overlay').hasClass('show')) {
$('.app-content .sidebar-left').removeClass('show');
$('.app-content .app-content-overlay').removeClass('show');
}
}
});