/* Template Name: Velzon - Admin & Dashboard Template Author: Themesbrand Website: https://Themesbrand.com/ Contact: Themesbrand@gmail.com File: mailbox init Js File */ var url = "assets/json/"; var allmaillist = ''; const loader = document.querySelector("#elmLoader"); // showing loading //mail list by json var getJSON = function (jsonurl, callback) { var xhr = new XMLHttpRequest(); xhr.open("GET", url + jsonurl, true); xhr.responseType = "json"; xhr.onload = function () { var status = xhr.status; if (status === 200) { document.getElementById("elmLoader").innerHTML = ''; callback(null, xhr.response); } else { callback(status, xhr.response); } }; xhr.send(); }; // load mail data function loadMailData(datas) { var triggerEl = document.querySelector('#mail-filter-navlist button[data-bs-target="#pills-primary"]') triggerEl.click() document.querySelector("#mail-list").innerHTML = ''; Array.from(datas).forEach(function (mailData, index) { var checkReaded = mailData.readed ? "" : "unread"; var checkStarred = mailData.starred ? "active" : ""; var mailcounted = mailData.counted ? '(' + mailData.counted + ')' : ""; document.querySelector("#mail-list").innerHTML += '
  • \
    \
    \ \ \
    \ \ \ ' + mailData.name + ' ' + mailcounted + '\
    \
    \ ' + mailData.title + '' + mailData.description + '\ \
    ' + mailData.date + '
    \
    \
  • '; favouriteBtn(); emailDetailShow(); emailDetailChange(); checkBoxAll(); }); } // load social mail data function loadSocialMailData(datas) { Array.from(datas).forEach(function (mailData, index) { var checkReaded = mailData.readed ? "" : "unread"; var checkStarred = mailData.starred ? "active" : ""; var mailcounted = mailData.counted ? '(' + mailData.counted + ')' : ""; document.getElementById("social-mail-list").innerHTML += '
  • \
    \
    \ \ \
    \ \ \ ' + mailData.name + ' ' + mailcounted + '\
    \
    \ ' + mailData.title + '' + mailData.description + '\ \
    ' + mailData.date + '
    \
    \
  • '; emailDetailShow(); emailDetailChange(); checkBoxAll(); }); } // load promotions mail data function loadPromotionsMailData(datas) { Array.from(datas).forEach(function (mailData, index) { var checkReaded = mailData.readed ? "" : "unread"; var checkStarred = mailData.starred ? "active" : ""; var mailcounted = mailData.counted ? '(' + mailData.counted + ')' : ""; document.getElementById("promotions-mail-list").innerHTML += '
  • \
    \
    \ \ \
    \ \ \ ' + mailData.name + ' ' + mailcounted + '\
    \
    \ ' + mailData.title + '' + mailData.description + '\ \
    ' + mailData.date + '
    \
    \
  • '; emailDetailShow(); emailDetailChange(); checkBoxAll(); }); } // get json getJSON("mail-list.init.json", function (err, data) { if (err !== null) { console.log("Something went wrong: " + err); } else { allmaillist = data[0].primary; socialmaillist = data[0].social; promotionsmaillist = data[0].promotions; loadMailData(allmaillist); loadSocialMailData(socialmaillist); loadPromotionsMailData(promotionsmaillist); } }); // mail list click event Array.from(document.querySelectorAll('.mail-list a')).forEach(function (mailTab) { mailTab.addEventListener("click", function () { var chatUserList = document.querySelector(".mail-list a.active"); if (chatUserList) chatUserList.classList.remove("active"); mailTab.classList.add('active'); if (mailTab.querySelector('.mail-list-link').hasAttribute('data-type')) { var tabname = mailTab.querySelector('.mail-list-link').innerHTML; var filterData = allmaillist.filter(maillist => maillist.labeltype === tabname); } else { var tabname = mailTab.querySelector('.mail-list-link').innerHTML; document.getElementById("mail-list").innerHTML = ''; if (tabname != 'All') { var filterData = allmaillist.filter(maillist => maillist.tabtype === tabname); } else { var filterData = allmaillist; } if (tabname != 'All' && tabname != 'Inbox') { document.getElementById("mail-filter-navlist").style.display = "none"; } else { document.getElementById("mail-filter-navlist").style.display = "block"; } } loadMailData(filterData); favouriteBtn(); }); }) // favourite btn function favouriteBtn() { Array.from(document.querySelectorAll(".favourite-btn")).forEach(function (item) { item.addEventListener("click", function () { if (item.classList.contains("active")) { item.classList.remove("active"); } else { item.classList.add("active"); } }); }); } favouriteBtn(); // emailDetailShow function emailDetailShow() { var bodyElement = document.getElementsByTagName('body')[0]; Array.from(document.querySelectorAll(".message-list a")).forEach(function (item) { item.addEventListener("click", function (event) { bodyElement.classList.add("email-detail-show"); Array.from(document.querySelectorAll(".message-list li.unread")).forEach(function (element) { if (element.classList.contains("unread")) { event.target.closest('li').classList.remove("unread"); } }); }); }); Array.from(document.querySelectorAll(".close-btn-email")).forEach(function (item) { item.addEventListener("click", function () { bodyElement.classList.remove("email-detail-show"); }); }); var isShowMenu = false; var emailMenuSidebar = document.getElementsByClassName('email-menu-sidebar'); document.querySelectorAll(".email-menu-btn").forEach(function (item) { item.addEventListener("click", function () { Array.from(emailMenuSidebar).forEach(function (elm) { elm.classList.add("menubar-show"); isShowMenu = true; }); }); }); window.addEventListener('click', function (e) { if (document.querySelector(".email-menu-sidebar").classList.contains('menubar-show')) { if (!isShowMenu) { document.querySelector(".email-menu-sidebar").classList.remove("menubar-show"); } isShowMenu = false; } }); favouriteBtn(); } // editor ClassicEditor.create(document.querySelector('#email-editor')).then(function (editor) { editor.ui.view.editable.element.style.height = '200px'; }) .catch(function (error) { console.error(error); }); // check all function checkBoxAll() { // checkbox-wrapper-mail Array.from(document.querySelectorAll(".checkbox-wrapper-mail input")).forEach(function (element) { element.addEventListener('click', function (el) { if (el.target.checked == true) { el.target.closest('li').classList.add("active"); } else { el.target.closest('li').classList.remove("active"); } }); }); // checkbox var checkboxes = document.querySelectorAll('.checkbox-wrapper-mail input'); Array.from(checkboxes).forEach(function (element) { element.addEventListener('click', function (event) { var checkboxes = document.querySelectorAll('.checkbox-wrapper-mail input'); var checkall = document.getElementById('checkall'); var checkedCount = document.querySelectorAll('.checkbox-wrapper-mail input:checked').length; checkall.checked = checkedCount > 0; checkall.indeterminate = checkedCount > 0 && checkedCount < checkboxes.length; if (event.target.closest('li').classList.contains("active")) { (checkedCount > 0) ? document.getElementById("email-topbar-actions").style.display = 'block': document.getElementById("email-topbar-actions").style.display = 'none'; } else { (checkedCount > 0) ? document.getElementById("email-topbar-actions").style.display = 'block': document.getElementById("email-topbar-actions").style.display = 'none'; } }); }); function checkAll() { var checkboxes = document.querySelectorAll('.checkbox-wrapper-mail input'); var checkedCount = document.querySelectorAll('.checkbox-wrapper-mail input:checked').length; Array.from(checkboxes).forEach(function (chkbox) { chkbox.checked = true; chkbox.parentNode.parentNode.parentNode.classList.add("active"); }); (checkedCount > 0) ? document.getElementById("email-topbar-actions").style.display = 'none' : document.getElementById("email-topbar-actions").style.display = 'block'; if(checkedCount > 0){ Array.from(checkboxes).forEach(function (chkbox) { chkbox.checked = false; chkbox.parentNode.parentNode.parentNode.classList.remove("active"); }); }else{ Array.from(checkboxes).forEach(function (chkbox) { chkbox.checked = true; chkbox.parentNode.parentNode.parentNode.classList.add("active"); }); } this.onclick = uncheckAll; removeItems(); } function uncheckAll() { var checkboxes = document.querySelectorAll('.checkbox-wrapper-mail input'); var checkedCount = document.querySelectorAll('.checkbox-wrapper-mail input:checked').length; Array.from(checkboxes).forEach(function (chkbox) { chkbox.checked = false; chkbox.parentNode.parentNode.parentNode.classList.remove("active"); }); (checkedCount > 0) ? document.getElementById("email-topbar-actions").style.display = 'none' : document.getElementById("email-topbar-actions").style.display = 'block'; if(checkedCount > 0){ Array.from(checkboxes).forEach(function (chkbox) { chkbox.checked = false; chkbox.parentNode.parentNode.parentNode.classList.remove("active"); }); }else{ Array.from(checkboxes).forEach(function (chkbox) { chkbox.checked = true; chkbox.parentNode.parentNode.parentNode.classList.add("active"); }); } this.onclick = checkAll; } var checkall = document.getElementById("checkall"); checkall.onclick = checkAll; } //User current Id var currentChatId = "users-chat"; scrollToBottom(currentChatId); // // Scroll to Bottom function scrollToBottom(id) { setTimeout(function () { var simpleBar = (document.getElementById(id).querySelector("#chat-conversation .simplebar-content-wrapper")) ? document.getElementById(id).querySelector("#chat-conversation .simplebar-content-wrapper") : '' var offsetHeight = document.getElementsByClassName("chat-conversation-list")[0] ? document.getElementById(id).getElementsByClassName("chat-conversation-list")[0].scrollHeight - window.innerHeight + 750 : 0; if (offsetHeight) simpleBar.scrollTo({ top: offsetHeight, behavior: "smooth" }); }, 100); } // removeItems function removeItems() { var removeItem = document.getElementById('removeItemModal'); removeItem.addEventListener('show.bs.modal', function (event) { document.getElementById("delete-record").addEventListener("click", function () { Array.from(document.querySelectorAll(".message-list li")).forEach(function (element) { var filtered = ''; if (element.classList.contains("active")) { var getid = element.querySelector('.form-check-input').value; function arrayRemove(arr, value) { return arr.filter(function (ele) { return ele.id != value; }); } var filtered = arrayRemove(allmaillist, getid); allmaillist = filtered; element.remove(); } }); document.getElementById("btn-close").click(); if (document.getElementById("email-topbar-actions")) document.getElementById("email-topbar-actions").style.display = 'none'; checkall.indeterminate = false; checkall.checked = false; }); }) } removeItems(); var markAllReadBtn = document.getElementById("mark-all-read"); markAllReadBtn.addEventListener('click', function (event) { if (document.querySelectorAll(".message-list li.unread").length === 0) { document.getElementById("unreadConversations").style.display = "block"; setTimeout(hideclipboardNew, 1000); function hideclipboardNew() { document.getElementById("unreadConversations").style.display = "none"; } }; Array.from(document.querySelectorAll(".message-list li.unread")).forEach(function (element) { if (element.classList.contains("unread")) { element.classList.remove("unread"); } }); }); var dummyUserImage = "assets/images/users/user-dummy-img.jpg"; // email chat detail element var mailChatDetailElm = false; Array.from(document.querySelectorAll(".email-chat-list a")).forEach(function (item) { item.addEventListener("click", function (event) { document.getElementById("emailchat-detailElem").style.display = "block"; mailChatDetailElm = true; // chat user list link active var chatUserList = document.querySelector(".email-chat-list a.active"); if (chatUserList) chatUserList.classList.remove("active"); this.classList.add("active"); var currentChatId = "users-chat"; scrollToBottom(currentChatId); //user Name and user Profile change on click var username = item.querySelector(".chatlist-user-name").innerHTML; var userProfile = item.querySelector(".chatlist-user-image img").getAttribute("src"); document.querySelector(".email-chat-detail .profile-username").innerHTML = username; var conversationImg = document.getElementById("users-conversation"); Array.from(conversationImg.querySelectorAll(".left .chat-avatar")).forEach(function (item) { if (userProfile) { item.querySelector("img").setAttribute("src", userProfile); } else { item.querySelector("img").setAttribute("src", dummyUserImage); } }); }); }); document.getElementById("emailchat-btn-close").addEventListener("click", function () { document.getElementById("emailchat-detailElem").style.display = "none"; }) // emailDetailChange function emailDetailChange() { Array.from(document.querySelectorAll(".message-list li")).forEach(function (item) { item.addEventListener("click", function () { var subjectTitle = item.querySelector(".subject-title").innerHTML; document.querySelector(".email-subject-title").innerHTML = subjectTitle; var emailTitleLeftName = item.querySelector(".title-name").innerHTML; Array.from(document.querySelectorAll(".accordion-item.left")).forEach(function (subitem) { subitem.querySelector(".email-user-name").innerHTML = emailTitleLeftName; var userImg = item.querySelector(".mail-userimg").value; subitem.querySelector("img").setAttribute("src", userImg) }); var messageUserName = document.querySelector(".user-name-text").innerHTML; var usermailProfile = document.querySelector(".header-profile-user").getAttribute("src"); Array.from(document.querySelectorAll(".accordion-item.right")).forEach(function (subitem) { subitem.querySelector(".email-user-name-right").innerHTML = messageUserName; subitem.querySelector("img").setAttribute("src", usermailProfile); }); }); }); }