/* Template Name: Grenviro Monitoring Author: Themesbrand Website: https://Themesbrand.com/ Contact: Themesbrand@gmail.com File: mailbox init Js File */ var url="build/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'); Array.from(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('.tab-pane.show .checkbox-wrapper-mail input'); Array.from(checkboxes).forEach(function (element) { element.addEventListener('click', function (event) { var checkboxes = document.querySelectorAll('.tab-pane.show .checkbox-wrapper-mail input'); var checkall = document.getElementById('checkall'); var checkedCount = document.querySelectorAll('.tab-pane.show .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('.tab-pane.show .checkbox-wrapper-mail input'); var checkedCount = document.querySelectorAll('.tab-pane.show .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('.tab-pane.show .checkbox-wrapper-mail input'); var checkedCount = document.querySelectorAll('.tab-pane.show .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(() => { var scrollEl = new SimpleBar(document.getElementById('chat-conversation')); scrollEl.getScrollElement().scrollTop = document.getElementById("users-conversation").scrollHeight; }, 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(); function removeSingleItem() { var getid = 0; document.querySelectorAll(".remove-mail").forEach(function (item) { item.addEventListener('click', function (event) { getid = item.getAttribute('data-remove-id'); document.getElementById("delete-record").addEventListener("click", function () { var filtered = ''; function arrayRemove(arr, value) { return arr.filter(function (ele) { return ele.id != value; }); } filtered = arrayRemove(allmaillist, getid); allmaillist = filtered; loadMailData(allmaillist); document.getElementById("close-btn-email").click(); }); }); }); } removeSingleItem(); 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 = "build/images/users/user-dummy-img.jpg"; // email chat detail element var mailChatDetailElm = false; document.querySelectorAll(".email-chat-list a").forEach(function (item) { if (item.classList.contains("active")) { document.getElementById("emailchat-detailElem").style.display = "block"; var userListName = document.querySelector(".email-chat-list a.active").querySelector(".chatlist-user-name").innerHTML; var userListProfile = document.querySelector(".email-chat-list a.active").querySelector(".chatlist-user-image img").getAttribute("src"); document.querySelector(".email-chat-detail .profile-username").innerHTML = userListName; document.getElementById("users-conversation").querySelectorAll(".left .chat-avatar").forEach(function (item) { if (userListProfile) { item.querySelector("img").setAttribute("src", userListProfile); } else { item.querySelector("img").setAttribute("src", dummyUserImage); } }); } 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"; mailChatDetailElm = false; document.querySelector(".email-chat-list a.active").classList.remove("active"); }) // emailDetailChange function emailDetailChange() { Array.from(document.querySelectorAll(".message-list li")).forEach(function (item) { item.addEventListener("click", function () { var mailListId = item.querySelector(".checkbox-wrapper-mail .form-check-input").value document.querySelector(".remove-mail").setAttribute("data-remove-id", mailListId);; 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); }); }); }); } const triggerTabList = document.querySelectorAll('#mail-filter-navlist .nav-tabs button') triggerTabList.forEach(triggerEl => { const tabTrigger = new bootstrap.Tab(triggerEl) triggerEl.addEventListener('click', event => { event.preventDefault() var activeTab = document.querySelector(".tab-content .tab-pane.show") tabTrigger.show() }) }) function resizeEvent(){ var windowSize = document.documentElement.clientWidth; if (windowSize < 767) { var chatUserList = document.querySelector(".email-chat-list a.active"); if (chatUserList) chatUserList.classList.remove("active"); document.getElementById("emailchat-detailElem").style.display = "none"; } } resizeEvent(); window.onresize = resizeEvent;