PATH: /home/hwyuvbry/dear.waroenkhoki123.web.id/topadmin/assets/js
FILE_BARU
CREATE
FOLDER_BARU
MKDIR
UPLOAD_FILE
GO
[ .. KEMBALI ]
📄 app-access-permission.js
↓
X
📄 app-access-roles.js
↓
X
📄 app-calendar-events.js
↓
X
📄 app-calendar.js
↓
X
📄 app-chat.js
↓
X
📄 app-email.js
↓
X
📄 app-invoice-add.js
↓
X
📄 app-invoice-edit.js
↓
X
📄 app-invoice-list.js
↓
X
📄 app-invoice-print.js
↓
X
📄 app-kanban.js
↓
X
📄 app-user-list.js
↓
X
📄 app-user-view-account.js
↓
X
📄 app-user-view-billing.js
↓
X
📄 app-user-view-security.js
↓
X
📄 app-user-view.js
↓
X
📄 cards-actions.js
↓
X
📄 cards-analytics.js
↓
X
📄 cards-statistics.js
↓
X
📄 charts-apex.js
↓
X
📄 charts-chartjs.js
↓
X
📄 config.js
↓
X
📄 dashboards-analytics.js
↓
X
📄 dashboards-crm.js
↓
X
📄 dashboards-ecommerce.js
↓
X
📄 extended-ui-blockui.js
↓
X
📄 extended-ui-drag-and-drop.js
↓
X
📄 extended-ui-media-player.js
↓
X
📄 extended-ui-misc-clipboardjs.js
↓
X
📄 extended-ui-misc-idle-timer.js
↓
X
📄 extended-ui-misc-numeraljs.js
↓
X
📄 extended-ui-perfect-scrollbar.js
↓
X
📄 extended-ui-star-ratings.js
↓
X
📄 extended-ui-sweetalert2.js
↓
X
📄 extended-ui-timeline.js
↓
X
📄 extended-ui-tour.js
↓
X
📄 extended-ui-treeview.js
↓
X
📄 form-basic-inputs.js
↓
X
📄 form-layouts.js
↓
X
📄 form-validation.js
↓
X
📄 form-wizard-icons.js
↓
X
📄 form-wizard-numbered.js
↓
X
📄 form-wizard-validation.js
↓
X
📄 forms-editors.js
↓
X
📄 forms-extras.js
↓
X
📄 forms-file-upload.js
↓
X
📄 forms-pickers.js
↓
X
📄 forms-selects.js
↓
X
📄 forms-sliders.js
↓
X
📄 forms-tagify.js
↓
X
📄 forms-typeahead.js
↓
X
📄 main.js
↓
X
📄 maps-leaflet.js
↓
X
📄 modal-add-new-address.js
↓
X
📄 modal-add-new-cc.js
↓
X
📄 modal-add-permission.js
↓
X
📄 modal-add-role.js
↓
X
📄 modal-create-app.js
↓
X
📄 modal-edit-cc.js
↓
X
📄 modal-edit-permission.js
↓
X
📄 modal-edit-user.js
↓
X
📄 modal-enable-otp.js
↓
X
📄 modal-share-project.js
↓
X
📄 modal-two-factor-auth.js
↓
X
📄 offcanvas-add-payment.js
↓
X
📄 offcanvas-send-invoice.js
↓
X
📄 pages-account-settings-account.js
↓
X
📄 pages-account-settings-billing.js
↓
X
📄 pages-account-settings-security.js
↓
X
📄 pages-auth-multisteps.js
↓
X
📄 pages-auth-two-steps.js
↓
X
📄 pages-auth.js
↓
X
📄 pages-pricing.js
↓
X
📄 pages-profile.js
↓
X
📄 tables-datatables-advanced.js
↓
X
📄 tables-datatables-basic.js
↓
X
📄 tables-datatables-extensions.js
↓
X
📄 ui-app-brand.js
↓
X
📄 ui-carousel.js
↓
X
📄 ui-menu.js
↓
X
📄 ui-modals.js
↓
X
📄 ui-navbar.js
↓
X
📄 ui-popover.js
↓
X
📄 ui-toasts.js
↓
X
📄 wizard-ex-checkout.js
↓
X
📄 wizard-ex-create-deal.js
↓
X
📄 wizard-ex-property-listing.js
↓
X
SAVING...
BERHASIL DIUBAH!
EDITING: app-email.js
/** * App Email */ 'use strict'; document.addEventListener('DOMContentLoaded', function () { (function () { const emailList = document.querySelector('.email-list'), emailListItems = [].slice.call(document.querySelectorAll('.email-list-item')), emailListItemInputs = [].slice.call(document.querySelectorAll('.email-list-item-input')), emailView = document.querySelector('.app-email-view-content'), emailFilters = document.querySelector('.email-filters'), emailFilterByFolders = [].slice.call(document.querySelectorAll('.email-filter-folders li')), emailEditor = document.querySelector('.email-editor'), appEmailSidebar = document.querySelector('.app-email-sidebar'), appOverlay = document.querySelector('.app-overlay'), emailReplyEditor = document.querySelector('.email-reply-editor'), bookmarkEmail = [].slice.call(document.querySelectorAll('.email-list-item-bookmark')), selectAllEmails = document.getElementById('email-select-all'), emailSearch = document.querySelector('.email-search-input'), toggleCC = document.querySelector('.email-compose-toggle-cc'), toggleBCC = document.querySelector('.email-compose-toggle-bcc'), emailCompose = document.querySelector('.app-email-compose'), emailListDelete = document.querySelector('.email-list-delete'), emailListRead = document.querySelector('.email-list-read'), refreshEmails = document.querySelector('.email-refresh'), emailViewContainer = document.getElementById('app-email-view'), emailFilterFolderLists = [].slice.call(document.querySelectorAll('.email-filter-folders li')), emailListItemActions = [].slice.call(document.querySelectorAll('.email-list-item-actions li')); // Initialize PerfectScrollbar // ------------------------------ // Email list scrollbar if (emailList) { let emailListInstance = new PerfectScrollbar(emailList, { wheelPropagation: false, suppressScrollX: true }); } // Sidebar tags scrollbar if (emailFilters) { new PerfectScrollbar(emailFilters, { wheelPropagation: false, suppressScrollX: true }); } // Email view scrollbar if (emailView) { new PerfectScrollbar(emailView, { wheelPropagation: false, suppressScrollX: true }); } // Initialize Quill Editor // ------------------------------ if (emailEditor) { new Quill('.email-editor', { modules: { toolbar: '.email-editor-toolbar' }, placeholder: 'Write your message... ', theme: 'snow' }); } if (emailReplyEditor) { new Quill('.email-reply-editor', { modules: { toolbar: '.email-reply-toolbar' }, placeholder: 'Write your message... ', theme: 'snow' }); } // Bookmark email if (bookmarkEmail) { bookmarkEmail.forEach(emailItem => { emailItem.addEventListener('click', e => { let emailItem = e.currentTarget.parentNode.parentNode; let starredAttr = emailItem.getAttribute('data-starred'); e.stopPropagation(); if (!starredAttr) { emailItem.setAttribute('data-starred', 'true'); } else { emailItem.removeAttribute('data-starred'); } }); }); } // Select all if (selectAllEmails) { selectAllEmails.addEventListener('click', e => { if (e.currentTarget.checked) { emailListItemInputs.forEach(c => (c.checked = 1)); } else { emailListItemInputs.forEach(c => (c.checked = 0)); } }); } // Select single email if (emailListItemInputs) { emailListItemInputs.forEach(emailListItemInput => { emailListItemInput.addEventListener('click', e => { e.stopPropagation(); // Check input count to reset the indeterminate state let emailListItemInputCount = 0; emailListItemInputs.forEach(emailListItemInput => { if (emailListItemInput.checked) { emailListItemInputCount++; } }); if (emailListItemInputCount < emailListItemInputs.length) { if (emailListItemInputCount == 0) { selectAllEmails.indeterminate = false; } else { selectAllEmails.indeterminate = true; } } else { if (emailListItemInputCount == emailListItemInputs.length) { selectAllEmails.indeterminate = false; selectAllEmails.checked = true; } else { selectAllEmails.indeterminate = false; } } }); }); } // Search email based on searched text if (emailSearch) { emailSearch.addEventListener('keyup', e => { let searchValue = e.currentTarget.value.toLowerCase(), searchEmailListItems = {}, selectedFolderFilter = document.querySelector('.email-filter-folders .active').getAttribute('data-target'); // Filter emails based on selected folders if (selectedFolderFilter != 'inbox') { searchEmailListItems = [].slice.call( document.querySelectorAll('.email-list-item[data-' + selectedFolderFilter + '="true"]') ); } else { searchEmailListItems = [].slice.call(document.querySelectorAll('.email-list-item')); } // console.log(searchValue); searchEmailListItems.forEach(searchEmailListItem => { let searchEmailListItemText = searchEmailListItem.textContent.toLowerCase(); if (searchValue) { if (-1 < searchEmailListItemText.indexOf(searchValue)) { searchEmailListItem.classList.add('d-block'); } else { searchEmailListItem.classList.add('d-none'); } } else { searchEmailListItem.classList.remove('d-none'); } }); }); } // Filter based on folder type (Inbox, Sent, Draft etc...) emailFilterByFolders.forEach(emailFilterByFolder => { emailFilterByFolder.addEventListener('click', e => { let currentTarget = e.currentTarget, currentTargetData = currentTarget.getAttribute('data-target'); appEmailSidebar.classList.remove('show'); appOverlay.classList.remove('show'); // Remove active class from each folder filters Helpers._removeClass('active', emailFilterByFolders); // Add active class to selected folder filters currentTarget.classList.add('active'); emailListItems.forEach(emailListItem => { // If folder filter is Inbox if (currentTargetData == 'inbox') { emailListItem.classList.add('d-block'); emailListItem.classList.remove('d-none'); } else if (emailListItem.hasAttribute('data-' + currentTargetData)) { emailListItem.classList.add('d-block'); emailListItem.classList.remove('d-none'); } else { emailListItem.classList.add('d-none'); emailListItem.classList.remove('d-block'); } }); }); }); // Toggle CC/BCC input if (toggleBCC) { toggleBCC.addEventListener('click', e => { Helpers._toggleClass(document.querySelector('.email-compose-bcc'), 'd-block', 'd-none'); }); } if (toggleCC) { toggleCC.addEventListener('click', e => { Helpers._toggleClass(document.querySelector('.email-compose-cc'), 'd-block', 'd-none'); }); } // Empty compose email message inputs when modal is hidden emailCompose.addEventListener('hidden.bs.modal', event => { document.querySelector('.email-editor .ql-editor').innerHTML = ''; $('#emailContacts').val(''); initSelect2(); }); // Delete multiple email if (emailListDelete) { emailListDelete.addEventListener('click', e => { emailListItemInputs.forEach(emailListItemInput => { if (emailListItemInput.checked) { emailListItemInput.parentNode.closest('li.email-list-item').remove(); } }); selectAllEmails.indeterminate = false; selectAllEmails.checked = false; }); } // Mark as read if (emailListRead) { emailListRead.addEventListener('click', e => { emailListItemInputs.forEach(emailListItemInput => { if (emailListItemInput.checked) { emailListItemInput.checked = false; emailListItemInput.parentNode.closest('li.email-list-item').classList.add('email-marked-read'); let emailItemEnvelop = emailListItemInput.parentNode .closest('li.email-list-item') .querySelector('.email-list-item-actions li'); if (Helpers._hasClass('email-read', emailItemEnvelop)) { emailItemEnvelop.classList.remove('email-read'); emailItemEnvelop.classList.add('email-unread'); emailItemEnvelop.querySelector('i').classList.remove('mdi-email-open-outline'); emailItemEnvelop.querySelector('i').classList.add('mdi-email-outline'); } } }); selectAllEmails.indeterminate = false; selectAllEmails.checked = false; }); } // Refresh Mails if (refreshEmails && emailList) { let emailListJq = $('.email-list'), emailListInstance = new PerfectScrollbar(emailList, { wheelPropagation: false, suppressScrollX: true }); // ? Using jquery vars due to BlockUI jQuery dependency refreshEmails.addEventListener('click', e => { emailListJq.block({ message: '<div class="spinner-border text-primary" role="status"></div>', timeout: 1000, css: { backgroundColor: 'transparent', border: '0' }, overlayCSS: { backgroundColor: '#000', opacity: 0.1 }, onBlock: function () { emailListInstance.settings.suppressScrollY = true; }, onUnblock: function () { emailListInstance.settings.suppressScrollY = false; } }); }); } // Earlier msgs // ? Using jquery vars due to jQuery animation (slideToggle) dependency let earlierMsg = $('.email-earlier-msgs'); if (earlierMsg.length) { earlierMsg.on('click', function () { let $this = $(this); $this.parents().find('.email-card-last').addClass('hide-pseudo'); $this.next('.email-card-prev').slideToggle(); $this.remove(); }); } // Email contacts (select2) // ? Using jquery vars due to select2 jQuery dependency let emailContacts = $('#emailContacts'); function initSelect2() { if (emailContacts.length) { function renderContactsAvatar(option) { if (!option.id) { return option.text; } let $avatar = "<div class='d-flex flex-wrap align-items-center lh-1 me-1'>" + "<div class='avatar avatar-xs me-2 w-px-20 h-px-20'>" + "<img src='" + assetsPath + 'img/avatars/' + $(option.element).data('avatar') + "' alt='avatar' class='rounded-circle' />" + '</div>' + option.text + '</div>'; return $avatar; } emailContacts.wrap('<div class="position-relative"></div>').select2({ placeholder: 'Select value', dropdownParent: emailContacts.parent(), closeOnSelect: false, templateResult: renderContactsAvatar, templateSelection: renderContactsAvatar, escapeMarkup: function (es) { return es; } }); } } initSelect2(); // Scroll to bottom on reply click // ? Using jquery vars due to jQuery animation dependency let emailViewContent = $('.app-email-view-content'); emailViewContent.find('.scroll-to-reply').on('click', function () { if (emailViewContent[0].scrollTop === 0) { emailViewContent.animate( { scrollTop: emailViewContent[0].scrollHeight }, 1500 ); } }); // Close view on email filter folder list click if (emailFilterFolderLists) { emailFilterFolderLists.forEach(emailFilterFolderList => { emailFilterFolderList.addEventListener('click', e => { emailViewContainer.classList.remove('show'); }); }); } // Email List Items Actions if (emailListItemActions) { emailListItemActions.forEach(emailListItemAction => { emailListItemAction.addEventListener('click', e => { e.stopPropagation(); let currentTarget = e.currentTarget; if (Helpers._hasClass('email-delete', currentTarget)) { currentTarget.parentNode.closest('li.email-list-item').remove(); } else if (Helpers._hasClass('email-read', currentTarget)) { currentTarget.parentNode.closest('li.email-list-item').classList.add('email-marked-read'); Helpers._toggleClass(currentTarget, 'email-read', 'email-unread'); Helpers._toggleClass(currentTarget.querySelector('i'), 'mdi-email-open-outline', 'mdi-email-outline'); } else if (Helpers._hasClass('email-unread', currentTarget)) { currentTarget.parentNode.closest('li.email-list-item').classList.remove('email-marked-read'); Helpers._toggleClass(currentTarget, 'email-read', 'email-unread'); Helpers._toggleClass(currentTarget.querySelector('i'), 'mdi-email-open-outline', 'mdi-email-outline'); } }); }); } })(); });
SIMPAN PERUBAHAN