first initial

This commit is contained in:
2025-05-27 19:09:17 +07:00
commit 80375d8af3
1587 changed files with 572586 additions and 0 deletions

View File

@@ -0,0 +1,95 @@
"use strict";
// Class definition
var KTAppChat = function () {
var chatAsideEl;
var chatContentEl;
// Private functions
var initAside = function () {
// Mobile offcanvas for mobile mode
var offcanvas = new KTOffcanvas(chatAsideEl, {
overlay: true,
baseClass: 'kt-app__aside',
closeBy: 'kt_chat_aside_close',
toggleBy: 'kt_chat_aside_mobile_toggle'
});
// User listing
var userListEl = KTUtil.find(chatAsideEl, '.kt-scroll');
if (!userListEl) {
return;
}
// Initialize perfect scrollbar(see: https://github.com/utatti/perfect-scrollbar)
KTUtil.scrollInit(userListEl, {
mobileNativeScroll: true, // enable native scroll for mobile
desktopNativeScroll: false, // disable native scroll and use custom scroll for desktop
resetHeightOnDestroy: true, // reset css height on scroll feature destroyed
handleWindowResize: true, // recalculate hight on window resize
rememberPosition: true, // remember scroll position in cookie
height: function() { // calculate height
var height;
var portletBodyEl = KTUtil.find(chatAsideEl, '.kt-portlet > .kt-portlet__body');
var widgetEl = KTUtil.find(chatAsideEl, '.kt-widget.kt-widget--users');
var searchbarEl = KTUtil.find(chatAsideEl, '.kt-searchbar');
if (KTUtil.isInResponsiveRange('desktop')) {
height = KTLayout.getContentHeight();
} else {
height = KTUtil.getViewPort().height;
}
if (chatAsideEl) {
height = height - parseInt(KTUtil.css(chatAsideEl, 'margin-top')) - parseInt(KTUtil.css(chatAsideEl, 'margin-bottom'));
height = height - parseInt(KTUtil.css(chatAsideEl, 'padding-top')) - parseInt(KTUtil.css(chatAsideEl, 'padding-bottom'));
}
if (widgetEl) {
height = height - parseInt(KTUtil.css(widgetEl, 'margin-top')) - parseInt(KTUtil.css(widgetEl, 'margin-bottom'));
height = height - parseInt(KTUtil.css(widgetEl, 'padding-top')) - parseInt(KTUtil.css(widgetEl, 'padding-bottom'));
}
if (portletBodyEl) {
height = height - parseInt(KTUtil.css(portletBodyEl, 'margin-top')) - parseInt(KTUtil.css(portletBodyEl, 'margin-bottom'));
height = height - parseInt(KTUtil.css(portletBodyEl, 'padding-top')) - parseInt(KTUtil.css(portletBodyEl, 'padding-bottom'));
}
if (searchbarEl) {
height = height - parseInt(KTUtil.css(searchbarEl, 'height'));
height = height - parseInt(KTUtil.css(searchbarEl, 'margin-top')) - parseInt(KTUtil.css(searchbarEl, 'margin-bottom'));
}
// remove additional space
height = height - 5;
return height;
}
});
}
return {
// public functions
init: function() {
// elements
chatAsideEl = KTUtil.getByID('kt_chat_aside');
// init aside and user list
initAside();
// init inline chat example
KTChat.setup(KTUtil.getByID('kt_chat_content'));
// trigger click to show popup modal chat on page load
if (KTUtil.getByID('kt_app_chat_launch_btn')) {
setTimeout(function() {
KTUtil.getByID('kt_app_chat_launch_btn').click();
}, 1000);
}
}
};
}();
KTUtil.ready(function() {
KTAppChat.init();
});

View File

@@ -0,0 +1 @@
"use strict";var KTAppChat=function(){var t;return{init:function(){t=KTUtil.getByID("kt_chat_aside"),function(){new KTOffcanvas(t,{overlay:!0,baseClass:"kt-app__aside",closeBy:"kt_chat_aside_close",toggleBy:"kt_chat_aside_mobile_toggle"});var i=KTUtil.find(t,".kt-scroll");i&&KTUtil.scrollInit(i,{mobileNativeScroll:!0,desktopNativeScroll:!1,resetHeightOnDestroy:!0,handleWindowResize:!0,rememberPosition:!0,height:function(){var i,s=KTUtil.find(t,".kt-portlet > .kt-portlet__body"),e=KTUtil.find(t,".kt-widget.kt-widget--users"),n=KTUtil.find(t,".kt-searchbar");return i=KTUtil.isInResponsiveRange("desktop")?KTLayout.getContentHeight():KTUtil.getViewPort().height,t&&(i=(i=i-parseInt(KTUtil.css(t,"margin-top"))-parseInt(KTUtil.css(t,"margin-bottom")))-parseInt(KTUtil.css(t,"padding-top"))-parseInt(KTUtil.css(t,"padding-bottom"))),e&&(i=(i=i-parseInt(KTUtil.css(e,"margin-top"))-parseInt(KTUtil.css(e,"margin-bottom")))-parseInt(KTUtil.css(e,"padding-top"))-parseInt(KTUtil.css(e,"padding-bottom"))),s&&(i=(i=i-parseInt(KTUtil.css(s,"margin-top"))-parseInt(KTUtil.css(s,"margin-bottom")))-parseInt(KTUtil.css(s,"padding-top"))-parseInt(KTUtil.css(s,"padding-bottom"))),n&&(i=(i-=parseInt(KTUtil.css(n,"height")))-parseInt(KTUtil.css(n,"margin-top"))-parseInt(KTUtil.css(n,"margin-bottom"))),i-=5}})}(),KTChat.setup(KTUtil.getByID("kt_chat_content")),KTUtil.getByID("kt_app_chat_launch_btn")&&setTimeout(function(){KTUtil.getByID("kt_app_chat_launch_btn").click()},1e3)}}}();KTUtil.ready(function(){KTAppChat.init()});

View File

@@ -0,0 +1,126 @@
"use strict";
// Class definition
var KTContactsAdd = function () {
// Base elements
var wizardEl;
var formEl;
var validator;
var wizard;
var avatar;
// Private functions
var initWizard = function () {
// Initialize form wizard
wizard = new KTWizard('kt_contacts_add', {
startStep: 1,
});
// Validation before going to next page
wizard.on('beforeNext', function(wizardObj) {
if (validator.form() !== true) {
wizardObj.stop(); // don't go to the next step
}
})
// Change event
wizard.on('change', function(wizard) {
KTUtil.scrollTop();
});
}
var initValidation = function() {
validator = formEl.validate({
// Validate only visible fields
ignore: ":hidden",
// Validation rules
rules: {
// Step 1
profile_avatar: {
//required: true
},
profile_first_name: {
required: true
},
profile_last_name: {
required: true
},
profile_phone: {
required: true
},
profile_email: {
required: true,
email: true
}
},
// Display error
invalidHandler: function(event, validator) {
KTUtil.scrollTop();
swal.fire({
"title": "",
"text": "There are some errors in your submission. Please correct them.",
"type": "error",
"buttonStyling": false,
"confirmButtonClass": "btn btn-brand btn-sm btn-bold"
});
},
// Submit valid form
submitHandler: function (form) {
}
});
}
var initSubmit = function() {
var btn = formEl.find('[data-ktwizard-type="action-submit"]');
btn.on('click', function(e) {
e.preventDefault();
if (validator.form()) {
// See: src\js\framework\base\app.js
KTApp.progress(btn);
//KTApp.block(formEl);
// See: http://malsup.com/jquery/form/#ajaxSubmit
formEl.ajaxSubmit({
success: function() {
KTApp.unprogress(btn);
//KTApp.unblock(formEl);
swal.fire({
"title": "",
"text": "The application has been successfully submitted!",
"type": "success",
"confirmButtonClass": "btn btn-secondary"
});
}
});
}
});
}
var initAvatar = function() {
avatar = new KTAvatar('kt_contacts_add_avatar');
}
return {
// public functions
init: function() {
formEl = $('#kt_contacts_add_form');
initWizard();
initValidation();
initSubmit();
initAvatar();
}
};
}();
jQuery(document).ready(function() {
KTContactsAdd.init();
});

View File

@@ -0,0 +1 @@
"use strict";var KTContactsAdd=function(){var t,e,n;return{init:function(){var r;t=$("#kt_contacts_add_form"),(n=new KTWizard("kt_contacts_add",{startStep:1})).on("beforeNext",function(t){!0!==e.form()&&t.stop()}),n.on("change",function(t){KTUtil.scrollTop()}),e=t.validate({ignore:":hidden",rules:{profile_avatar:{},profile_first_name:{required:!0},profile_last_name:{required:!0},profile_phone:{required:!0},profile_email:{required:!0,email:!0}},invalidHandler:function(t,e){KTUtil.scrollTop(),swal.fire({title:"",text:"There are some errors in your submission. Please correct them.",type:"error",buttonStyling:!1,confirmButtonClass:"btn btn-brand btn-sm btn-bold"})},submitHandler:function(t){}}),(r=t.find('[data-ktwizard-type="action-submit"]')).on("click",function(n){n.preventDefault(),e.form()&&(KTApp.progress(r),t.ajaxSubmit({success:function(){KTApp.unprogress(r),swal.fire({title:"",text:"The application has been successfully submitted!",type:"success",confirmButtonClass:"btn btn-secondary"})}}))}),new KTAvatar("kt_contacts_add_avatar")}}}();jQuery(document).ready(function(){KTContactsAdd.init()});

View File

@@ -0,0 +1,22 @@
"use strict";
// Class definition
var KTContactsEdit = function () {
// Base elements
var avatar;
var initAvatar = function() {
avatar = new KTAvatar('kt_contacts_edit_avatar');
}
return {
// public functions
init: function() {
initAvatar();
}
};
}();
jQuery(document).ready(function() {
KTContactsEdit.init();
});

View File

@@ -0,0 +1 @@
"use strict";var KTContactsEdit={init:function(){new KTAvatar("kt_contacts_edit_avatar")}};jQuery(document).ready(function(){KTContactsEdit.init()});

View File

@@ -0,0 +1,27 @@
"use strict";
// Class definition
var KTContactsListColumns = function () {
// Private functions
var initAside = function () {
// Mobile offcanvas for mobile mode
var offcanvas = new KTOffcanvas('kt_contact_aside', {
overlay: true,
baseClass: 'kt-app__aside',
closeBy: 'kt_contact_aside_close',
toggleBy: 'kt_subheader_mobile_toggle'
});
}
return {
// public functions
init: function() {
initAside();
}
};
}();
KTUtil.ready(function() {
KTContactsListColumns.init();
});

View File

@@ -0,0 +1 @@
"use strict";var KTContactsListColumns={init:function(){new KTOffcanvas("kt_contact_aside",{overlay:!0,baseClass:"kt-app__aside",closeBy:"kt_contact_aside_close",toggleBy:"kt_subheader_mobile_toggle"})}};KTUtil.ready(function(){KTContactsListColumns.init()});

View File

@@ -0,0 +1,462 @@
"use strict";
// Class definition
var KTUserListDatatable = function () {
// variables
var datatable;
// init
var init = function () {
// init the datatables. Learn more: https://keenthemes.com/metronic/?page=docs&section=datatable
datatable = $('#kt_apps_user_list_datatable').KTDatatable({
// datasource definition
data: {
type: 'remote',
source: {
read: {
url: 'https://keenthemes.com/metronic/themes/themes/metronic/dist/preview/inc/api/datatables/demos/client.php',
},
},
pageSize: 10, // display 20 records per page
serverPaging: true,
serverFiltering: true,
serverSorting: true,
},
// layout definition
layout: {
scroll: false, // enable/disable datatable scroll both horizontal and vertical when needed.
footer: false, // display/hide footer
},
// column sorting
sortable: true,
pagination: true,
search: {
input: $('#generalSearch'),
delay: 400,
},
// columns definition
columns: [
{
field: 'ID',
title: '#',
sortable: false,
width: 20,
selector: {
class: 'kt-checkbox--solid'
},
textAlign: 'center',
},
{
field: "Name",
title: "Name",
width: 200,
// callback function support for column rendering
template: function (data, i) {
var number = 4 + i;
while (number > 12) {
number = number - 3;
}
var user_img = '100_' + number + '.jpg';
var pos = KTUtil.getRandomInt(0, 5);
var position = [
'Developer',
'Designer',
'CEO',
'Manager',
'Architect',
'Sales'
];
var output = '';
if (number > 5) {
output = '' +
'<div class="kt-user-card-v2">' +
'<div class="kt-user-card-v2__pic">' +
'<img src="https://keenthemes.com/metronic/preview/assets/media/users/' + user_img + '" alt="photo">' +
'</div>' +
'<div class="kt-user-card-v2__details">' +
'<a href="#" class="kt-user-card-v2__name">' + data.Name + '</a>' +
'<span class="kt-user-card-v2__desc">' + position[pos] + '</span>' +
'</div>' +
'</div>';
} else {
var stateNo = KTUtil.getRandomInt(0, 6);
var states = [
'success',
'brand',
'danger',
'success',
'warning',
'primary',
'info'
];
var state = states[stateNo];
output = '' +
'<div class="kt-user-card-v2">' +
'<div class="kt-user-card-v2__pic">' +
'<div class="kt-badge kt-badge--xl kt-badge--' + state + '">' + data.Name.substring(0, 1) + '</div>' +
'</div>' +
'<div class="kt-user-card-v2__details">' +
'<a href="#" class="kt-user-card-v2__name">' + data.Name + '</a>' +
'<span class="kt-user-card-v2__desc">' + position[pos] + '</span>' +
'</div>' +
'</div>';
}
return output;
}
},
{
field: 'City',
title: 'City',
},
{
field: "Company",
title: "Company",
autoHide: false,
// callback function support for column rendering
template: function (data, i) {
var number = i + 1;
while (number > 5) {
number = number - 3;
}
var img = number + '.png';
var skills = [
'Angular, React',
'Vue, Kendo',
'.NET, Oracle, MySQL',
'Node, SASS, Webpack',
'MangoDB, Java',
'HTML5, jQuery, CSS3'
];
var output = '' +
'<div class="kt-user-card-v2">' +
'<div class="kt-user-card-v2__pic">' +
'<img src="https://keenthemes.com/metronic/preview/assets/media/client-logos/logo' + img + '" alt="photo">' +
'</div>' +
'<div class="kt-user-card-v2__details">' +
'<a href="#" class="kt-user-card-v2__name">' + data.Company + '</a>' +
'<span class="kt-user-card-v2__email">' + skills[number - 1] + '</span>' +
'</div>' +
'</div>';
return output;
}
},
{
field: 'Address',
title: 'Address',
width: 150,
template: function (row) {
return row.Address1 + ' ' + row.Address2;
}
},
{
field: 'Country',
title: 'Country',
},
{
field: 'DateCreated',
title: 'Date Created',
type: 'date',
format: 'MM/DD/YYYY',
},
{
field: 'DateModified',
title: 'Date Modified',
type: 'date',
format: 'MM/DD/YYYY',
},
{
field: "Type",
title: "Type",
autoHide: false,
// callback function support for column rendering
template: function (row) {
var status = {
1: {
'title': 'Customer',
'class': ' btn-label-brand'
},
2: {
'title': 'Partner',
'class': ' btn-label-danger'
},
3: {
'title': 'Supplier',
'class': ' btn-label-warning'
},
4: {
'title': 'Staff',
'class': ' btn-label-success'
},
5: {
'title': 'Hot Lead',
'class': ' btn-label-primary'
},
6: {
'title': 'Cold Lead',
'class': ' btn-label-info'
},
};
return '<span class="btn btn-bold btn-sm btn-font-sm ' + status[row.Type].class + '">' + status[row.Type].title + '</span>';
}
},
{
width: 110,
field: 'Status',
title: 'Status',
autoHide: false,
// callback function support for column rendering
template: function (row) {
var status = {
1: {'title': 'Active', 'state': 'success'},
2: {'title': 'Pending', 'state': 'primary'},
3: {'title': 'Suspended', 'state': 'danger'},
};
return '<span class="kt-badge kt-badge--' + status[row.Status].state + ' kt-badge--dot"></span>&nbsp;<span class="kt-font-bold kt-font-' + status[row.Status].state + '">' + status[row.Status].title + '</span>';
},
},
{
field: "Actions",
width: 80,
title: "Actions",
sortable: false,
autoHide: false,
overflow: 'visible',
template: function () {
return '' +
'<div class="dropdown">' +
'<a href="javascript:;" class="btn btn-sm btn-clean btn-icon btn-icon-md" data-toggle="dropdown">' +
'<i class="flaticon-more-1"></i>' +
'</a>' +
'<div class="dropdown-menu dropdown-menu-right">' +
'<ul class="kt-nav">' +
'<li class="kt-nav__item">' +
'<a href="#" class="kt-nav__link">' +
'<i class="kt-nav__link-icon flaticon2-expand"></i>' +
'<span class="kt-nav__link-text">View</span>' +
'</a>' +
'</li>' +
'<li class="kt-nav__item">' +
'<a href="#" class="kt-nav__link">' +
'<i class="kt-nav__link-icon flaticon2-contract"></i>' +
'<span class="kt-nav__link-text">Edit</span>' +
'</a>' +
'</li>' +
'<li class="kt-nav__item">' +
'<a href="#" class="kt-nav__link">' +
'<i class="kt-nav__link-icon flaticon2-trash"></i>' +
'<span class="kt-nav__link-text">Delete</span>' +
'</a>' +
'</li>' +
'<li class="kt-nav__item">' +
'<a href="#" class="kt-nav__link">' +
'<i class="kt-nav__link-icon flaticon2-mail-1"></i>' +
'<span class="kt-nav__link-text">Export</span>' +
'</a>' +
'</li>' +
'</ul>' +
'</div>' +
'</div>';
},
}]
});
};
// search
var search = function () {
$('#kt_form_status').on('change', function () {
datatable.search($(this).val().toLowerCase(), 'Status');
});
};
// selection
var selection = function () {
// init form controls
//$('#kt_form_status, #kt_form_type').selectpicker();
// event handler on check and uncheck on records
datatable.on('kt-datatable--on-check kt-datatable--on-uncheck kt-datatable--on-layout-updated', function (e) {
var checkedNodes = datatable.rows('.kt-datatable__row--active').nodes(); // get selected records
var count = checkedNodes.length; // selected records count
$('#kt_subheader_group_selected_rows').html(count);
if (count > 0) {
$('#kt_subheader_search').addClass('kt-hidden');
$('#kt_subheader_group_actions').removeClass('kt-hidden');
} else {
$('#kt_subheader_search').removeClass('kt-hidden');
$('#kt_subheader_group_actions').addClass('kt-hidden');
}
});
}
// fetch selected records
var selectedFetch = function () {
// event handler on selected records fetch modal launch
$('#kt_datatable_records_fetch_modal').on('show.bs.modal', function (e) {
// show loading dialog
var loading = new KTDialog({'type': 'loader', 'placement': 'top center', 'message': 'Loading ...'});
loading.show();
setTimeout(function () {
loading.hide();
}, 1000);
// fetch selected IDs
var ids = datatable.rows('.kt-datatable__row--active').nodes().find('.kt-checkbox--single > [type="checkbox"]').map(function (i, chk) {
return $(chk).val();
});
// populate selected IDs
var c = document.createDocumentFragment();
for (var i = 0; i < ids.length; i++) {
var li = document.createElement('li');
li.setAttribute('data-id', ids[i]);
li.innerHTML = 'Selected record ID: ' + ids[i];
c.appendChild(li);
}
$(e.target).find('#kt_apps_user_fetch_records_selected').append(c);
}).on('hide.bs.modal', function (e) {
$(e.target).find('#kt_apps_user_fetch_records_selected').empty();
});
};
// selected records status update
var selectedStatusUpdate = function () {
$('#kt_subheader_group_actions_status_change').on('click', "[data-toggle='status-change']", function () {
var status = $(this).find(".kt-nav__link-text").html();
// fetch selected IDs
var ids = datatable.rows('.kt-datatable__row--active').nodes().find('.kt-checkbox--single > [type="checkbox"]').map(function (i, chk) {
return $(chk).val();
});
if (ids.length > 0) {
// learn more: https://sweetalert2.github.io/
swal.fire({
buttonsStyling: false,
html: "Are you sure to update " + ids.length + " selected records status to " + status + " ?",
type: "info",
confirmButtonText: "Yes, update!",
confirmButtonClass: "btn btn-sm btn-bold btn-brand",
showCancelButton: true,
cancelButtonText: "No, cancel",
cancelButtonClass: "btn btn-sm btn-bold btn-default"
}).then(function (result) {
if (result.value) {
swal.fire({
title: 'Deleted!',
text: 'Your selected records statuses have been updated!',
type: 'success',
buttonsStyling: false,
confirmButtonText: "OK",
confirmButtonClass: "btn btn-sm btn-bold btn-brand",
})
// result.dismiss can be 'cancel', 'overlay',
// 'close', and 'timer'
} else if (result.dismiss === 'cancel') {
swal.fire({
title: 'Cancelled',
text: 'You selected records statuses have not been updated!',
type: 'error',
buttonsStyling: false,
confirmButtonText: "OK",
confirmButtonClass: "btn btn-sm btn-bold btn-brand",
});
}
});
}
});
}
// selected records delete
var selectedDelete = function () {
$('#kt_subheader_group_actions_delete_all').on('click', function () {
// fetch selected IDs
var ids = datatable.rows('.kt-datatable__row--active').nodes().find('.kt-checkbox--single > [type="checkbox"]').map(function (i, chk) {
return $(chk).val();
});
if (ids.length > 0) {
// learn more: https://sweetalert2.github.io/
swal.fire({
buttonsStyling: false,
text: "Are you sure to delete " + ids.length + " selected records ?",
type: "danger",
confirmButtonText: "Yes, delete!",
confirmButtonClass: "btn btn-sm btn-bold btn-danger",
showCancelButton: true,
cancelButtonText: "No, cancel",
cancelButtonClass: "btn btn-sm btn-bold btn-brand"
}).then(function (result) {
if (result.value) {
swal.fire({
title: 'Deleted!',
text: 'Your selected records have been deleted! :(',
type: 'success',
buttonsStyling: false,
confirmButtonText: "OK",
confirmButtonClass: "btn btn-sm btn-bold btn-brand",
})
// result.dismiss can be 'cancel', 'overlay',
// 'close', and 'timer'
} else if (result.dismiss === 'cancel') {
swal.fire({
title: 'Cancelled',
text: 'You selected records have not been deleted! :)',
type: 'error',
buttonsStyling: false,
confirmButtonText: "OK",
confirmButtonClass: "btn btn-sm btn-bold btn-brand",
});
}
});
}
});
}
var updateTotal = function () {
datatable.on('kt-datatable--on-layout-updated', function () {
//$('#kt_subheader_total').html(datatable.getTotalRows() + ' Total');
});
};
return {
// public functions
init: function () {
init();
search();
selection();
selectedFetch();
selectedStatusUpdate();
selectedDelete();
updateTotal();
},
};
}();
// On document ready
KTUtil.ready(function () {
KTUserListDatatable.init();
});

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,578 @@
"use strict";
// Class definition
var KTAppInbox = function() {
var asideEl = KTUtil.getByID('kt_inbox_aside');
var listEl = KTUtil.getByID('kt_inbox_list');
var viewEl = KTUtil.getByID('kt_inbox_view');
var composeEl = KTUtil.getByID('kt_inbox_compose');
var asideOffcanvas;
var initEditor = function(editor) {
// init editor
var options = {
modules: {
toolbar: {}
},
placeholder: 'Type message...',
theme: 'snow'
};
var editor = new Quill('#' + editor, options);
}
var initForm = function(formEl) {
var formEl = KTUtil.getByID(formEl);
// Init autocompletes
var toEl = KTUtil.find(formEl, '[name=compose_to]');
var tagifyTo = new Tagify(toEl, {
delimiters: ", ", // add new tags when a comma or a space character is entered
maxTags: 10,
blacklist: ["fuck", "shit", "pussy"],
keepInvalidTags: true, // do not remove invalid tags (but keep them marked as invalid)
whitelist: [{
value: 'Chris Muller',
email: 'chris.muller@wix.com',
initials: '',
initialsState: '',
pic: './assets/media/users/100_11.jpg',
class: 'tagify__tag--brand'
}, {
value: 'Nick Bold',
email: 'nick.seo@gmail.com',
initials: 'SS',
initialsState: 'warning',
pic: ''
}, {
value: 'Alon Silko',
email: 'alon@keenthemes.com',
initials: '',
initialsState: '',
pic: './assets/media/users/100_6.jpg'
}, {
value: 'Sam Seanic',
email: 'sam.senic@loop.com',
initials: '',
initialsState: '',
pic: './assets/media/users/100_8.jpg'
}, {
value: 'Sara Loran',
email: 'sara.loran@tilda.com',
initials: '',
initialsState: '',
pic: './assets/media/users/100_9.jpg'
}, {
value: 'Eric Davok',
email: 'davok@mix.com',
initials: '',
initialsState: '',
pic: './assets/media/users/100_13.jpg'
}, {
value: 'Sam Seanic',
email: 'sam.senic@loop.com',
initials: '',
initialsState: '',
pic: './assets/media/users/100_13.jpg'
}, {
value: 'Lina Nilson',
email: 'lina.nilson@loop.com',
initials: 'LN',
initialsState: 'danger',
pic: './assets/media/users/100_15.jpg'
}],
templates: {
dropdownItem: function(tagData) {
try {
var html = '';
html += '<div class="tagify__dropdown__item">';
html += ' <div class="kt-media-card">';
html += ' <span class="kt-media kt-media--' + (tagData.initialsState ? tagData.initialsState : '') + '" style="background-image: url(\''+ (tagData.pic ? tagData.pic : '') + '\')">';
html += ' <span>' + (tagData.initials ? tagData.initials : '') + '</span>';
html += ' </span>';
html += ' <div class="kt-media-card__info">';
html += ' <a href="#" class="kt-media-card__title">'+ (tagData.value ? tagData.value : '') + '</a>';
html += ' <span class="kt-media-card__desc">' + (tagData.email ? tagData.email : '') + '</span>';
html += ' </div>';
html += ' </div>';
html += '</div>';
return html;
} catch (err) {}
}
},
transformTag: function(tagData) {
tagData.class = 'tagify__tag tagify__tag--brand';
},
dropdown: {
classname: "color-blue",
enabled: 1,
maxItems: 5
}
});
var ccEl = KTUtil.find(formEl, '[name=compose_cc]');
var tagifyC = new Tagify(ccEl, {
delimiters: ", ", // add new tags when a comma or a space character is entered
maxTags: 10,
blacklist: ["fuck", "shit", "pussy"],
keepInvalidTags: true, // do not remove invalid tags (but keep them marked as invalid)
whitelist: [{
value: 'Chris Muller',
email: 'chris.muller@wix.com',
initials: '',
initialsState: '',
pic: './assets/media/users/100_11.jpg',
class: 'tagify__tag--brand'
}, {
value: 'Nick Bold',
email: 'nick.seo@gmail.com',
initials: 'SS',
initialsState: 'warning',
pic: ''
}, {
value: 'Alon Silko',
email: 'alon@keenthemes.com',
initials: '',
initialsState: '',
pic: './assets/media/users/100_6.jpg'
}, {
value: 'Sam Seanic',
email: 'sam.senic@loop.com',
initials: '',
initialsState: '',
pic: './assets/media/users/100_8.jpg'
}, {
value: 'Sara Loran',
email: 'sara.loran@tilda.com',
initials: '',
initialsState: '',
pic: './assets/media/users/100_9.jpg'
}, {
value: 'Eric Davok',
email: 'davok@mix.com',
initials: '',
initialsState: '',
pic: './assets/media/users/100_13.jpg'
}, {
value: 'Sam Seanic',
email: 'sam.senic@loop.com',
initials: '',
initialsState: '',
pic: './assets/media/users/100_13.jpg'
}, {
value: 'Lina Nilson',
email: 'lina.nilson@loop.com',
initials: 'LN',
initialsState: 'danger',
pic: './assets/media/users/100_15.jpg'
}],
templates: {
dropdownItem: function(tagData) {
try {
var html = '';
html += '<div class="tagify__dropdown__item">';
html += ' <div class="kt-media-card">';
html += ' <span class="kt-media kt-media--' + (tagData.initialsState ? tagData.initialsState : '') + '" style="background-image: url(\''+ (tagData.pic ? tagData.pic : '') + '\')">';
html += ' <span>' + (tagData.initials ? tagData.initials : '') + '</span>';
html += ' </span>';
html += ' <div class="kt-media-card__info">';
html += ' <a href="#" class="kt-media-card__title">'+ (tagData.value ? tagData.value : '') + '</a>';
html += ' <span class="kt-media-card__desc">' + (tagData.email ? tagData.email : '') + '</span>';
html += ' </div>';
html += ' </div>';
html += '</div>';
return html;
} catch (err) {}
}
},
transformTag: function(tagData) {
tagData.class = 'tagify__tag tagify__tag--brand';
},
dropdown: {
classname: "color-blue",
enabled: 1,
maxItems: 5
}
});
var bccEl = KTUtil.find(formEl, '[name=compose_bcc]');
var tagifyBcc = new Tagify(bccEl, {
delimiters: ", ", // add new tags when a comma or a space character is entered
maxTags: 10,
blacklist: ["fuck", "shit", "pussy"],
keepInvalidTags: true, // do not remove invalid tags (but keep them marked as invalid)
whitelist: [{
value: 'Chris Muller',
email: 'chris.muller@wix.com',
initials: '',
initialsState: '',
pic: './assets/media/users/100_11.jpg',
class: 'tagify__tag--brand'
}, {
value: 'Nick Bold',
email: 'nick.seo@gmail.com',
initials: 'SS',
initialsState: 'warning',
pic: ''
}, {
value: 'Alon Silko',
email: 'alon@keenthemes.com',
initials: '',
initialsState: '',
pic: './assets/media/users/100_6.jpg'
}, {
value: 'Sam Seanic',
email: 'sam.senic@loop.com',
initials: '',
initialsState: '',
pic: './assets/media/users/100_8.jpg'
}, {
value: 'Sara Loran',
email: 'sara.loran@tilda.com',
initials: '',
initialsState: '',
pic: './assets/media/users/100_9.jpg'
}, {
value: 'Eric Davok',
email: 'davok@mix.com',
initials: '',
initialsState: '',
pic: './assets/media/users/100_13.jpg'
}, {
value: 'Sam Seanic',
email: 'sam.senic@loop.com',
initials: '',
initialsState: '',
pic: './assets/media/users/100_13.jpg'
}, {
value: 'Lina Nilson',
email: 'lina.nilson@loop.com',
initials: 'LN',
initialsState: 'danger',
pic: './assets/media/users/100_15.jpg'
}],
templates: {
dropdownItem: function(tagData) {
try {
var html = '';
html += '<div class="tagify__dropdown__item">';
html += ' <div class="kt-media-card">';
html += ' <span class="kt-media kt-media--' + (tagData.initialsState ? tagData.initialsState : '') + '" style="background-image: url(\''+ (tagData.pic ? tagData.pic : '') + '\')">';
html += ' <span>' + (tagData.initials ? tagData.initials : '') + '</span>';
html += ' </span>';
html += ' <div class="kt-media-card__info">';
html += ' <a href="#" class="kt-media-card__title">'+ (tagData.value ? tagData.value : '') + '</a>';
html += ' <span class="kt-media-card__desc">' + (tagData.email ? tagData.email : '') + '</span>';
html += ' </div>';
html += ' </div>';
html += '</div>';
return html;
} catch (err) {}
}
},
transformTag: function(tagData) {
tagData.class = 'tagify__tag tagify__tag--brand';
},
dropdown: {
classname: "color-blue",
enabled: 1,
maxItems: 5
}
});
// CC input display
KTUtil.on(formEl, '.kt-inbox__to .kt-inbox__tool.kt-inbox__tool--cc', 'click', function(e) {
var inputEl = KTUtil.find(formEl, '.kt-inbox__to');
KTUtil.addClass(inputEl, 'kt-inbox__to--cc');
KTUtil.find(formEl, "[name=compose_cc]").focus();
});
// CC input hide
KTUtil.on(formEl, '.kt-inbox__to .kt-inbox__field.kt-inbox__field--cc .kt-inbox__icon--delete', 'click', function(e) {
var inputEl = KTUtil.find(formEl, '.kt-inbox__to');
KTUtil.removeClass(inputEl, 'kt-inbox__to--cc');
});
// BCC input display
KTUtil.on(formEl, '.kt-inbox__to .kt-inbox__tool.kt-inbox__tool--bcc', 'click', function(e) {
var inputEl = KTUtil.find(formEl, '.kt-inbox__to');
KTUtil.addClass(inputEl, 'kt-inbox__to--bcc');
KTUtil.find(formEl, "[name=compose_bcc]").focus();
});
// BCC input hide
KTUtil.on(formEl, '.kt-inbox__to .kt-inbox__field.kt-inbox__field--bcc .kt-inbox__icon--delete', 'click', function(e) {
var inputEl = KTUtil.find(formEl, '.kt-inbox__to');
KTUtil.removeClass(inputEl, 'kt-inbox__to--bcc');
});
}
var initAttachments = function(elemId) {
var id = "#" + elemId;
var previewNode = $(id + " .dropzone-item");
previewNode.id = "";
var previewTemplate = previewNode.parent('.dropzone-items').html();
previewNode.remove();
var myDropzone = new Dropzone(id, { // Make the whole body a dropzone
url: "https://keenthemes.com/scripts/void.php", // Set the url for your upload script location
parallelUploads: 20,
maxFilesize: 1, // Max filesize in MB
previewTemplate: previewTemplate,
previewsContainer: id + " .dropzone-items", // Define the container to display the previews
clickable: id + "_select" // Define the element that should be used as click trigger to select files.
});
myDropzone.on("addedfile", function(file) {
// Hookup the start button
$(document).find(id + ' .dropzone-item').css('display', '');
});
// Update the total progress bar
myDropzone.on("totaluploadprogress", function(progress) {
document.querySelector(id + " .progress-bar").style.width = progress + "%";
});
myDropzone.on("sending", function(file) {
// Show the total progress bar when upload starts
document.querySelector(id + " .progress-bar").style.opacity = "1";
});
// Hide the total progress bar when nothing's uploading anymore
myDropzone.on("complete", function(progress) {
var thisProgressBar = id + " .dz-complete";
setTimeout(function() {
$(thisProgressBar + " .progress-bar, " + thisProgressBar + " .progress").css('opacity', '0');
}, 300)
});
}
return {
// public functions
init: function() {
// init
KTAppInbox.initAside();
KTAppInbox.initList();
KTAppInbox.initView();
KTAppInbox.initReply();
KTAppInbox.initCompose();
},
initAside: function() {
// Mobile offcanvas for mobile mode
asideOffcanvas = new KTOffcanvas(asideEl, {
overlay: true,
baseClass: 'kt-inbox__aside',
closeBy: 'kt_inbox_aside_close',
toggleBy: 'kt_subheader_mobile_toggle'
});
// View list
KTUtil.on(asideEl, '.kt-nav__item .kt-nav__link[data-action="list"]', 'click', function(e) {
var type = KTUtil.attr(this, 'data-type');
var listItemsEl = KTUtil.find(listEl, '.kt-inbox__items');
var navItemEl = this.closest('.kt-nav__item');
var navItemActiveEl = KTUtil.find(asideEl, '.kt-nav__item.kt-nav__item--active');
// demo loading
var loading = new KTDialog({
'type': 'loader',
'placement': 'top center',
'message': 'Loading ...'
});
loading.show();
setTimeout(function() {
loading.hide();
KTUtil.css(listEl, 'display', 'flex'); // show list
KTUtil.css(viewEl, 'display', 'none'); // hide view
KTUtil.addClass(navItemEl, 'kt-nav__item--active');
KTUtil.removeClass(navItemActiveEl, 'kt-nav__item--active');
KTUtil.attr(listItemsEl, 'data-type', type);
}, 600);
});
},
initList: function() {
// View message
KTUtil.on(listEl, '.kt-inbox__item', 'click', function(e) {
var actionsEl = KTUtil.find(this, '.kt-inbox__actions');
// skip actions click
if (e.target === actionsEl || (actionsEl && actionsEl.contains(e.target) === true)) {
return false;
}
// demo loading
var loading = new KTDialog({
'type': 'loader',
'placement': 'top center',
'message': 'Loading ...'
});
loading.show();
setTimeout(function() {
loading.hide();
KTUtil.css(listEl, 'display', 'none');
KTUtil.css(viewEl, 'display', 'flex');
}, 800);
});
// Group selection
KTUtil.on(listEl, '.kt-inbox__toolbar .kt-inbox__check .kt-checkbox input', 'click', function() {
var items = KTUtil.findAll(listEl, '.kt-inbox__items .kt-inbox__item');
for (var i = 0, j = items.length; i < j; i++) {
var item = items[i];
var checkbox = KTUtil.find(item, '.kt-inbox__actions .kt-checkbox input');
checkbox.checked = this.checked;
if (this.checked) {
KTUtil.addClass(item, 'kt-inbox__item--selected');
} else {
KTUtil.removeClass(item, 'kt-inbox__item--selected');
}
}
});
// Individual selection
KTUtil.on(listEl, '.kt-inbox__item .kt-checkbox input', 'click', function() {
var item = this.closest('.kt-inbox__item');
if (item && this.checked) {
KTUtil.addClass(item, 'kt-inbox__item--selected');
} else {
KTUtil.removeClass(item, 'kt-inbox__item--selected');
}
});
},
initView: function() {
// Back to listing
KTUtil.on(viewEl, '.kt-inbox__toolbar .kt-inbox__icon.kt-inbox__icon--back', 'click', function() {
// demo loading
var loading = new KTDialog({
'type': 'loader',
'placement': 'top center',
'message': 'Loading ...'
});
loading.show();
setTimeout(function() {
loading.hide();
KTUtil.css(listEl, 'display', 'flex');
KTUtil.css(viewEl, 'display', 'none');
}, 1000);
});
// Expand/Collapse reply
KTUtil.on(viewEl, '.kt-inbox__messages .kt-inbox__message .kt-inbox__head', 'click', function(e) {
var dropdownToggleEl = KTUtil.find(this, '.kt-inbox__details .kt-inbox__tome .kt-inbox__label');
var groupActionsEl = KTUtil.find(this, '.kt-inbox__actions .kt-inbox__group');
// skip dropdown toggle click
if (e.target === dropdownToggleEl || (dropdownToggleEl && dropdownToggleEl.contains(e.target) === true)) {
return false;
}
// skip group actions click
if (e.target === groupActionsEl || (groupActionsEl && groupActionsEl.contains(e.target) === true)) {
return false;
}
var message = this.closest('.kt-inbox__message');
if (KTUtil.hasClass(message, 'kt-inbox__message--expanded')) {
KTUtil.removeClass(message, 'kt-inbox__message--expanded');
} else {
KTUtil.addClass(message, 'kt-inbox__message--expanded');
}
});
},
initReply: function() {
initEditor('kt_inbox_reply_editor');
initAttachments('kt_inbox_reply_attachments');
initForm('kt_inbox_reply_form');
// Show/Hide reply form
KTUtil.on(viewEl, '.kt-inbox__reply .kt-inbox__actions .btn', 'click', function(e) {
var reply = this.closest('.kt-inbox__reply');
if (KTUtil.hasClass(reply, 'kt-inbox__reply--on')) {
KTUtil.removeClass(reply, 'kt-inbox__reply--on');
} else {
KTUtil.addClass(reply, 'kt-inbox__reply--on');
}
});
// Show reply form for messages
KTUtil.on(viewEl, '.kt-inbox__message .kt-inbox__actions .kt-inbox__group .kt-inbox__icon.kt-inbox__icon--reply', 'click', function(e) {
var reply = KTUtil.find(viewEl, '.kt-inbox__reply');
KTUtil.addClass(reply, 'kt-inbox__reply--on');
});
// Remove reply form
KTUtil.on(viewEl, '.kt-inbox__reply .kt-inbox__foot .kt-inbox__icon--remove', 'click', function(e) {
var reply = this.closest('.kt-inbox__reply');
swal.fire({
text: "Are you sure to discard this reply ?",
//type: "error",
buttonsStyling: false,
confirmButtonText: "Discard reply",
confirmButtonClass: "btn btn-danger",
showCancelButton: true,
cancelButtonText: "Cancel",
cancelButtonClass: "btn btn-label-brand"
}).then(function(result) {
if (KTUtil.hasClass(reply, 'kt-inbox__reply--on')) {
KTUtil.removeClass(reply, 'kt-inbox__reply--on');
}
});
});
},
initCompose: function() {
initEditor('kt_inbox_compose_editor');
initAttachments('kt_inbox_compose_attachments');
initForm('kt_inbox_compose_form');
// Remove reply form
KTUtil.on(composeEl, '.kt-inbox__form .kt-inbox__foot .kt-inbox__secondary .kt-inbox__icon.kt-inbox__icon--remove', 'click', function(e) {
swal.fire({
text: "Are you sure to discard this message ?",
type: "danger",
buttonsStyling: false,
confirmButtonText: "Discard draft",
confirmButtonClass: "btn btn-danger",
showCancelButton: true,
cancelButtonText: "Cancel",
cancelButtonClass: "btn btn-label-brand"
}).then(function(result) {
$(composeEl).modal('hide');
});
});
}
};
}();
KTUtil.ready(function() {
KTAppInbox.init();
});

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,126 @@
"use strict";
// Class definition
var KTProjectsAdd = function () {
// Base elements
var wizardEl;
var formEl;
var validator;
var wizard;
var avatar;
// Private functions
var initWizard = function () {
// Initialize form wizard
wizard = new KTWizard('kt_projects_add', {
startStep: 1,
});
// Validation before going to next page
wizard.on('beforeNext', function(wizardObj) {
if (validator.form() !== true) {
wizardObj.stop(); // don't go to the next step
}
})
// Change event
wizard.on('change', function(wizard) {
KTUtil.scrollTop();
});
}
var initValidation = function() {
validator = formEl.validate({
// Validate only visible fields
ignore: ":hidden",
// Validation rules
rules: {
// Step 1
profile_avatar: {
//required: true
},
profile_first_name: {
required: true
},
profile_last_name: {
required: true
},
profile_phone: {
required: true
},
profile_email: {
required: true,
email: true
}
},
// Display error
invalidHandler: function(event, validator) {
KTUtil.scrollTop();
swal.fire({
"title": "",
"text": "There are some errors in your submission. Please correct them.",
"type": "error",
"buttonStyling": false,
"confirmButtonClass": "btn btn-brand btn-sm btn-bold"
});
},
// Submit valid form
submitHandler: function (form) {
}
});
}
var initSubmit = function() {
var btn = formEl.find('[data-ktwizard-type="action-submit"]');
btn.on('click', function(e) {
e.preventDefault();
if (validator.form()) {
// See: src\js\framework\base\app.js
KTApp.progress(btn);
//KTApp.block(formEl);
// See: http://malsup.com/jquery/form/#ajaxSubmit
formEl.ajaxSubmit({
success: function() {
KTApp.unprogress(btn);
//KTApp.unblock(formEl);
swal.fire({
"title": "",
"text": "The application has been successfully submitted!",
"type": "success",
"confirmButtonClass": "btn btn-secondary"
});
}
});
}
});
}
var initAvatar = function() {
avatar = new KTAvatar('kt_projects_add_avatar');
}
return {
// public functions
init: function() {
formEl = $('#kt_projects_add_form');
initWizard();
initValidation();
initSubmit();
initAvatar();
}
};
}();
jQuery(document).ready(function() {
KTProjectsAdd.init();
});

View File

@@ -0,0 +1 @@
"use strict";var KTProjectsAdd=function(){var e,t,r;return{init:function(){var n;e=$("#kt_projects_add_form"),(r=new KTWizard("kt_projects_add",{startStep:1})).on("beforeNext",function(e){!0!==t.form()&&e.stop()}),r.on("change",function(e){KTUtil.scrollTop()}),t=e.validate({ignore:":hidden",rules:{profile_avatar:{},profile_first_name:{required:!0},profile_last_name:{required:!0},profile_phone:{required:!0},profile_email:{required:!0,email:!0}},invalidHandler:function(e,t){KTUtil.scrollTop(),swal.fire({title:"",text:"There are some errors in your submission. Please correct them.",type:"error",buttonStyling:!1,confirmButtonClass:"btn btn-brand btn-sm btn-bold"})},submitHandler:function(e){}}),(n=e.find('[data-ktwizard-type="action-submit"]')).on("click",function(r){r.preventDefault(),t.form()&&(KTApp.progress(n),e.ajaxSubmit({success:function(){KTApp.unprogress(n),swal.fire({title:"",text:"The application has been successfully submitted!",type:"success",confirmButtonClass:"btn btn-secondary"})}}))}),new KTAvatar("kt_projects_add_avatar")}}}();jQuery(document).ready(function(){KTProjectsAdd.init()});

View File

@@ -0,0 +1,445 @@
"use strict";
// Class definition
var KTUserListDatatable = function() {
// variables
var datatable;
// init
var init = function() {
// init the datatables. Learn more: https://keenthemes.com/metronic/?page=docs&section=datatable
datatable = $('#kt_apps_user_list_datatable').KTDatatable({
// datasource definition
data: {
type: 'remote',
source: {
read: {
url: 'https://keenthemes.com/metronic/themes/themes/metronic/dist/preview/inc/api/datatables/demos/default.php',
},
},
pageSize: 10, // display 20 records per page
serverPaging: true,
serverFiltering: true,
serverSorting: true,
},
// layout definition
layout: {
scroll: false, // enable/disable datatable scroll both horizontal and vertical when needed.
footer: false, // display/hide footer
},
// column sorting
sortable: true,
pagination: true,
search: {
input: $('#generalSearch'),
delay: 400,
},
// columns definition
columns: [{
field: 'RecordID',
title: '#',
sortable: false,
width: 20,
selector: {
class: 'kt-checkbox--solid'
},
textAlign: 'center',
}, {
field: "ShipName",
title: "Company",
width: 'auto',
autoHide: false,
// callback function support for column rendering
template: function(data, i) {
var number = i + 1;
while (number > 5) {
number = number - 3;
}
var img = number + '.png';
var skills = [
'Angular, React',
'Vue, Kendo',
'.NET, Oracle, MySQL',
'Node, SASS, Webpack',
'MangoDB, Java',
'HTML5, jQuery, CSS3'
];
var output = '\
<div class="kt-user-card-v2 kt-user-card-v2--uncircle">\
<div class="kt-user-card-v2__pic">\
<img src="https://keenthemes.com/metronic/preview/assets/media/project-logos/' + img + '" alt="photo">\
</div>\
<div class="kt-user-card-v2__details">\
<a href="#" class="kt-user-card-v2__name">' + data.CompanyName + '</a>\
<span class="kt-user-card-v2__email">' +
skills[number - 1] + '</span>\
</div>\
</div>';
return output;
}
}, {
field: 'Country',
title: 'Country',
template: function(row) {
return row.Country + ' ' + row.ShipCountry;
},
}, {
field: 'ShipDate',
title: 'Ship Date',
type: 'date',
format: 'MM/DD/YYYY',
}, {
field: "AgentName",
title: "Assigned",
width: 200,
// callback function support for column rendering
template: function(data, i) {
var number = 4 + i;
while (number > 12) {
number = number - 3;
}
var user_img = '100_' + number + '.jpg';
var pos = KTUtil.getRandomInt(0, 5);
var position = [
'Developer',
'Designer',
'CEO',
'Manager',
'Architect',
'Sales'
];
var output = '';
if (number > 5) {
output = '<div class="kt-user-card-v2">\
<div class="kt-user-card-v2__pic">\
<img src="https://keenthemes.com/metronic/preview/assets/media/users/' + user_img + '" alt="photo">\
</div>\
<div class="kt-user-card-v2__details">\
<a href="#" class="kt-user-card-v2__name">' + data.CompanyAgent + '</a>\
<span class="kt-user-card-v2__desc">' + position[pos] + '</span>\
</div>\
</div>';
} else {
var stateNo = KTUtil.getRandomInt(0, 6);
var states = [
'success',
'brand',
'danger',
'success',
'warning',
'primary',
'info'
];
var state = states[stateNo];
output = '<div class="kt-user-card-v2">\
<div class="kt-user-card-v2__pic">\
<div class="kt-badge kt-badge--xl kt-badge--' + state + '">' + data.CompanyAgent.substring(0, 1) + '</div>\
</div>\
<div class="kt-user-card-v2__details">\
<a href="#" class="kt-user-card-v2__name">' + data.CompanyAgent + '</a>\
<span class="kt-user-card-v2__desc">' + position[pos] + '</span>\
</div>\
</div>';
}
return output;
}
}, {
field: "Status",
title: "Status",
width: 100,
// callback function support for column rendering
template: function(row) {
var status = {
1: {
'title': 'Pending',
'class': ' btn-label-brand'
},
2: {
'title': 'Processing',
'class': ' btn-label-danger'
},
3: {
'title': 'Success',
'class': ' btn-label-success'
},
4: {
'title': 'Delivered',
'class': ' btn-label-success'
},
5: {
'title': 'Canceled',
'class': ' btn-label-warning'
},
6: {
'title': 'Done',
'class': ' btn-label-danger'
},
7: {
'title': 'On Hold',
'class': ' btn-label-warning'
}
};
return '<span class="btn btn-bold btn-sm btn-font-sm ' + status[row.Status].class + '">' + status[row.Status].title + '</span>';
}
}, {
width: 110,
field: 'Type',
title: 'Type',
autoHide: false,
// callback function support for column rendering
template: function(row) {
var status = {
1: {'title': 'Company', 'state': 'danger'},
2: {'title': 'Customer', 'state': 'primary'},
3: {'title': 'Staff', 'state': 'success'},
};
return '<span class="kt-badge kt-badge--' + status[row.Type].state + ' kt-badge--dot"></span>&nbsp;<span class="kt-font-bold kt-font-' + status[row.Type].state + '">' +
status[row.Type].title + '</span>';
},
}, {
field: "Actions",
width: 80,
title: "Actions",
sortable: false,
autoHide: false,
overflow: 'visible',
template: function() {
return '\
<div class="dropdown">\
<a href="javascript:;" class="btn btn-sm btn-clean btn-icon btn-icon-md" data-toggle="dropdown">\
<i class="flaticon-more-1"></i>\
</a>\
<div class="dropdown-menu dropdown-menu-right">\
<ul class="kt-nav">\
<li class="kt-nav__item">\
<a href="#" class="kt-nav__link">\
<i class="kt-nav__link-icon flaticon2-expand"></i>\
<span class="kt-nav__link-text">View</span>\
</a>\
</li>\
<li class="kt-nav__item">\
<a href="#" class="kt-nav__link">\
<i class="kt-nav__link-icon flaticon2-contract"></i>\
<span class="kt-nav__link-text">Edit</span>\
</a>\
</li>\
<li class="kt-nav__item">\
<a href="#" class="kt-nav__link">\
<i class="kt-nav__link-icon flaticon2-trash"></i>\
<span class="kt-nav__link-text">Delete</span>\
</a>\
</li>\
<li class="kt-nav__item">\
<a href="#" class="kt-nav__link">\
<i class="kt-nav__link-icon flaticon2-mail-1"></i>\
<span class="kt-nav__link-text">Export</span>\
</a>\
</li>\
</ul>\
</div>\
</div>\
';
},
}]
});
}
// search
var search = function() {
$('#kt_form_status').on('change', function() {
datatable.search($(this).val().toLowerCase(), 'Status');
});
}
// selection
var selection = function() {
// init form controls
//$('#kt_form_status, #kt_form_type').selectpicker();
// event handler on check and uncheck on records
datatable.on('kt-datatable--on-check kt-datatable--on-uncheck kt-datatable--on-layout-updated', function(e) {
var checkedNodes = datatable.rows('.kt-datatable__row--active').nodes(); // get selected records
var count = checkedNodes.length; // selected records count
$('#kt_subheader_group_selected_rows').html(count);
if (count > 0) {
$('#kt_subheader_search').addClass('kt-hidden');
$('#kt_subheader_group_actions').removeClass('kt-hidden');
} else {
$('#kt_subheader_search').removeClass('kt-hidden');
$('#kt_subheader_group_actions').addClass('kt-hidden');
}
});
}
// fetch selected records
var selectedFetch = function() {
// event handler on selected records fetch modal launch
$('#kt_datatable_records_fetch_modal').on('show.bs.modal', function(e) {
// show loading dialog
var loading = new KTDialog({'type': 'loader', 'placement': 'top center', 'message': 'Loading ...'});
loading.show();
setTimeout(function() {
loading.hide();
}, 1000);
// fetch selected IDs
var ids = datatable.rows('.kt-datatable__row--active').nodes().find('.kt-checkbox--single > [type="checkbox"]').map(function(i, chk) {
return $(chk).val();
});
// populate selected IDs
var c = document.createDocumentFragment();
for (var i = 0; i < ids.length; i++) {
var li = document.createElement('li');
li.setAttribute('data-id', ids[i]);
li.innerHTML = 'Selected record ID: ' + ids[i];
c.appendChild(li);
}
$(e.target).find('#kt_apps_user_fetch_records_selected').append(c);
}).on('hide.bs.modal', function(e) {
$(e.target).find('#kt_apps_user_fetch_records_selected').empty();
});
};
// selected records status update
var selectedStatusUpdate = function() {
$('#kt_subheader_group_actions_status_change').on('click', "[data-toggle='status-change']", function() {
var status = $(this).find(".kt-nav__link-text").html();
// fetch selected IDs
var ids = datatable.rows('.kt-datatable__row--active').nodes().find('.kt-checkbox--single > [type="checkbox"]').map(function(i, chk) {
return $(chk).val();
});
if (ids.length > 0) {
// learn more: https://sweetalert2.github.io/
swal.fire({
buttonsStyling: false,
html: "Are you sure to update " + ids.length + " selected records status to " + status + " ?",
type: "info",
confirmButtonText: "Yes, update!",
confirmButtonClass: "btn btn-sm btn-bold btn-brand",
showCancelButton: true,
cancelButtonText: "No, cancel",
cancelButtonClass: "btn btn-sm btn-bold btn-default"
}).then(function(result) {
if (result.value) {
swal.fire({
title: 'Deleted!',
text: 'Your selected records statuses have been updated!',
type: 'success',
buttonsStyling: false,
confirmButtonText: "OK",
confirmButtonClass: "btn btn-sm btn-bold btn-brand",
})
// result.dismiss can be 'cancel', 'overlay',
// 'close', and 'timer'
} else if (result.dismiss === 'cancel') {
swal.fire({
title: 'Cancelled',
text: 'You selected records statuses have not been updated!',
type: 'error',
buttonsStyling: false,
confirmButtonText: "OK",
confirmButtonClass: "btn btn-sm btn-bold btn-brand",
});
}
});
}
});
}
// selected records delete
var selectedDelete = function() {
$('#kt_subheader_group_actions_delete_all').on('click', function() {
// fetch selected IDs
var ids = datatable.rows('.kt-datatable__row--active').nodes().find('.kt-checkbox--single > [type="checkbox"]').map(function(i, chk) {
return $(chk).val();
});
if (ids.length > 0) {
// learn more: https://sweetalert2.github.io/
swal.fire({
buttonsStyling: false,
text: "Are you sure to delete " + ids.length + " selected records ?",
type: "danger",
confirmButtonText: "Yes, delete!",
confirmButtonClass: "btn btn-sm btn-bold btn-danger",
showCancelButton: true,
cancelButtonText: "No, cancel",
cancelButtonClass: "btn btn-sm btn-bold btn-brand"
}).then(function(result) {
if (result.value) {
swal.fire({
title: 'Deleted!',
text: 'Your selected records have been deleted! :(',
type: 'success',
buttonsStyling: false,
confirmButtonText: "OK",
confirmButtonClass: "btn btn-sm btn-bold btn-brand",
})
// result.dismiss can be 'cancel', 'overlay',
// 'close', and 'timer'
} else if (result.dismiss === 'cancel') {
swal.fire({
title: 'Cancelled',
text: 'You selected records have not been deleted! :)',
type: 'error',
buttonsStyling: false,
confirmButtonText: "OK",
confirmButtonClass: "btn btn-sm btn-bold btn-brand",
});
}
});
}
});
}
var updateTotal = function() {
datatable.on('kt-datatable--on-layout-updated', function () {
//$('#kt_subheader_total').html(datatable.getTotalRows() + ' Total');
});
};
return {
// public functions
init: function() {
init();
search();
selection();
selectedFetch();
selectedStatusUpdate();
selectedDelete();
updateTotal();
},
};
}();
// On document ready
KTUtil.ready(function() {
KTUserListDatatable.init();
});

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,126 @@
"use strict";
// Class definition
var KTUserAdd = function () {
// Base elements
var wizardEl;
var formEl;
var validator;
var wizard;
var avatar;
// Private functions
var initWizard = function () {
// Initialize form wizard
wizard = new KTWizard('kt_user_add_user', {
startStep: 1,
});
// Validation before going to next page
wizard.on('beforeNext', function(wizardObj) {
if (validator.form() !== true) {
wizardObj.stop(); // don't go to the next step
}
})
// Change event
wizard.on('change', function(wizard) {
KTUtil.scrollTop();
});
}
var initValidation = function() {
validator = formEl.validate({
// Validate only visible fields
ignore: ":hidden",
// Validation rules
rules: {
// Step 1
profile_avatar: {
//required: true
},
profile_first_name: {
required: true
},
profile_last_name: {
required: true
},
profile_phone: {
required: true
},
profile_email: {
required: true,
email: true
}
},
// Display error
invalidHandler: function(event, validator) {
KTUtil.scrollTop();
swal.fire({
"title": "",
"text": "There are some errors in your submission. Please correct them.",
"type": "error",
"buttonStyling": false,
"confirmButtonClass": "btn btn-brand btn-sm btn-bold"
});
},
// Submit valid form
submitHandler: function (form) {
}
});
}
var initSubmit = function() {
var btn = formEl.find('[data-ktwizard-type="action-submit"]');
btn.on('click', function(e) {
e.preventDefault();
if (validator.form()) {
// See: src\js\framework\base\app.js
KTApp.progress(btn);
//KTApp.block(formEl);
// See: http://malsup.com/jquery/form/#ajaxSubmit
formEl.ajaxSubmit({
success: function() {
KTApp.unprogress(btn);
//KTApp.unblock(formEl);
swal.fire({
"title": "",
"text": "The application has been successfully submitted!",
"type": "success",
"confirmButtonClass": "btn btn-secondary"
});
}
});
}
});
}
var initUserForm = function() {
avatar = new KTAvatar('kt_user_add_avatar');
}
return {
// public functions
init: function() {
formEl = $('#kt_user_add_form');
initWizard();
initValidation();
initSubmit();
initUserForm();
}
};
}();
jQuery(document).ready(function() {
KTUserAdd.init();
});

View File

@@ -0,0 +1 @@
"use strict";var KTUserAdd=function(){var e,t,r;return{init:function(){var n;e=$("#kt_user_add_form"),(r=new KTWizard("kt_user_add_user",{startStep:1})).on("beforeNext",function(e){!0!==t.form()&&e.stop()}),r.on("change",function(e){KTUtil.scrollTop()}),t=e.validate({ignore:":hidden",rules:{profile_avatar:{},profile_first_name:{required:!0},profile_last_name:{required:!0},profile_phone:{required:!0},profile_email:{required:!0,email:!0}},invalidHandler:function(e,t){KTUtil.scrollTop(),swal.fire({title:"",text:"There are some errors in your submission. Please correct them.",type:"error",buttonStyling:!1,confirmButtonClass:"btn btn-brand btn-sm btn-bold"})},submitHandler:function(e){}}),(n=e.find('[data-ktwizard-type="action-submit"]')).on("click",function(r){r.preventDefault(),t.form()&&(KTApp.progress(n),e.ajaxSubmit({success:function(){KTApp.unprogress(n),swal.fire({title:"",text:"The application has been successfully submitted!",type:"success",confirmButtonClass:"btn btn-secondary"})}}))}),new KTAvatar("kt_user_add_avatar")}}}();jQuery(document).ready(function(){KTUserAdd.init()});

View File

@@ -0,0 +1,22 @@
"use strict";
// Class definition
var KTUserEdit = function () {
// Base elements
var avatar;
var initUserForm = function() {
avatar = new KTAvatar('kt_user_edit_avatar');
}
return {
// public functions
init: function() {
initUserForm();
}
};
}();
jQuery(document).ready(function() {
KTUserEdit.init();
});

View File

@@ -0,0 +1 @@
"use strict";var KTUserEdit={init:function(){new KTAvatar("kt_user_edit_avatar")}};jQuery(document).ready(function(){KTUserEdit.init()});

View File

@@ -0,0 +1,445 @@
"use strict";
// Class definition
var KTUserListDatatable = function() {
// variables
var datatable;
// init
var init = function() {
// init the datatables. Learn more: https://keenthemes.com/metronic/?page=docs&section=datatable
datatable = $('#kt_apps_user_list_datatable').KTDatatable({
// datasource definition
data: {
type: 'remote',
source: {
read: {
url: 'https://keenthemes.com/metronic/themes/themes/metronic/dist/preview/inc/api/datatables/demos/default.php',
},
},
pageSize: 10, // display 20 records per page
serverPaging: true,
serverFiltering: true,
serverSorting: true,
},
// layout definition
layout: {
scroll: false, // enable/disable datatable scroll both horizontal and vertical when needed.
footer: false, // display/hide footer
},
// column sorting
sortable: true,
pagination: true,
search: {
input: $('#generalSearch'),
delay: 400,
},
// columns definition
columns: [{
field: 'RecordID',
title: '#',
sortable: false,
width: 20,
selector: {
class: 'kt-checkbox--solid'
},
textAlign: 'center',
}, {
field: "AgentName",
title: "User",
width: 200,
// callback function support for column rendering
template: function(data, i) {
var number = 4 + i;
while (number > 12) {
number = number - 3;
}
var user_img = '100_' + number + '.jpg';
var pos = KTUtil.getRandomInt(0, 5);
var position = [
'Developer',
'Designer',
'CEO',
'Manager',
'Architect',
'Sales'
];
var output = '';
if (number > 5) {
output = '<div class="kt-user-card-v2">\
<div class="kt-user-card-v2__pic">\
<img src="https://keenthemes.com/metronic/preview/assets/media/users/' + user_img + '" alt="photo">\
</div>\
<div class="kt-user-card-v2__details">\
<a href="#" class="kt-user-card-v2__name">' + data.CompanyAgent + '</a>\
<span class="kt-user-card-v2__desc">' + position[pos] + '</span>\
</div>\
</div>';
} else {
var stateNo = KTUtil.getRandomInt(0, 6);
var states = [
'success',
'brand',
'danger',
'success',
'warning',
'primary',
'info'
];
var state = states[stateNo];
output = '<div class="kt-user-card-v2">\
<div class="kt-user-card-v2__pic">\
<div class="kt-badge kt-badge--xl kt-badge--' + state + '">' + data.CompanyAgent.substring(0, 1) + '</div>\
</div>\
<div class="kt-user-card-v2__details">\
<a href="#" class="kt-user-card-v2__name">' + data.CompanyAgent + '</a>\
<span class="kt-user-card-v2__desc">' + position[pos] + '</span>\
</div>\
</div>';
}
return output;
}
}, {
field: 'Country',
title: 'Country',
template: function(row) {
return row.Country + ' ' + row.ShipCountry;
},
}, {
field: 'ShipDate',
title: 'Ship Date',
type: 'date',
format: 'MM/DD/YYYY',
}, {
field: "ShipName",
title: "Company",
width: 'auto',
autoHide: false,
// callback function support for column rendering
template: function(data, i) {
var number = i + 1;
while (number > 5) {
number = number - 3;
}
var img = number + '.png';
var skills = [
'Angular, React',
'Vue, Kendo',
'.NET, Oracle, MySQL',
'Node, SASS, Webpack',
'MangoDB, Java',
'HTML5, jQuery, CSS3'
];
var output = '\
<div class="kt-user-card-v2">\
<div class="kt-user-card-v2__pic">\
<img src="https://keenthemes.com/metronic/preview/assets/media/client-logos/logo' + img + '" alt="photo">\
</div>\
<div class="kt-user-card-v2__details">\
<a href="#" class="kt-user-card-v2__name">' + data.CompanyName + '</a>\
<span class="kt-user-card-v2__email">' +
skills[number - 1] + '</span>\
</div>\
</div>';
return output;
}
}, {
field: "Status",
title: "Status",
width: 100,
// callback function support for column rendering
template: function(row) {
var status = {
1: {
'title': 'Pending',
'class': ' btn-label-brand'
},
2: {
'title': 'Processing',
'class': ' btn-label-danger'
},
3: {
'title': 'Success',
'class': ' btn-label-success'
},
4: {
'title': 'Delivered',
'class': ' btn-label-success'
},
5: {
'title': 'Canceled',
'class': ' btn-label-warning'
},
6: {
'title': 'Done',
'class': ' btn-label-danger'
},
7: {
'title': 'On Hold',
'class': ' btn-label-warning'
}
};
return '<span class="btn btn-bold btn-sm btn-font-sm ' + status[row.Status].class + '">' + status[row.Status].title + '</span>';
}
}, {
width: 110,
field: 'Type',
title: 'Type',
autoHide: false,
// callback function support for column rendering
template: function(row) {
var status = {
1: {'title': 'Online', 'state': 'danger'},
2: {'title': 'Retail', 'state': 'primary'},
3: {'title': 'Direct', 'state': 'success'},
};
return '<span class="kt-badge kt-badge--' + status[row.Type].state + ' kt-badge--dot"></span>&nbsp;<span class="kt-font-bold kt-font-' + status[row.Type].state + '">' +
status[row.Type].title + '</span>';
},
}, {
field: "Actions",
width: 80,
title: "Actions",
sortable: false,
autoHide: false,
overflow: 'visible',
template: function() {
return '\
<div class="dropdown">\
<a href="javascript:;" class="btn btn-sm btn-clean btn-icon btn-icon-md" data-toggle="dropdown">\
<i class="flaticon-more-1"></i>\
</a>\
<div class="dropdown-menu dropdown-menu-right">\
<ul class="kt-nav">\
<li class="kt-nav__item">\
<a href="#" class="kt-nav__link">\
<i class="kt-nav__link-icon flaticon2-expand"></i>\
<span class="kt-nav__link-text">View</span>\
</a>\
</li>\
<li class="kt-nav__item">\
<a href="#" class="kt-nav__link">\
<i class="kt-nav__link-icon flaticon2-contract"></i>\
<span class="kt-nav__link-text">Edit</span>\
</a>\
</li>\
<li class="kt-nav__item">\
<a href="#" class="kt-nav__link">\
<i class="kt-nav__link-icon flaticon2-trash"></i>\
<span class="kt-nav__link-text">Delete</span>\
</a>\
</li>\
<li class="kt-nav__item">\
<a href="#" class="kt-nav__link">\
<i class="kt-nav__link-icon flaticon2-mail-1"></i>\
<span class="kt-nav__link-text">Export</span>\
</a>\
</li>\
</ul>\
</div>\
</div>\
';
},
}]
});
}
// search
var search = function() {
$('#kt_form_status').on('change', function() {
datatable.search($(this).val().toLowerCase(), 'Status');
});
}
// selection
var selection = function() {
// init form controls
//$('#kt_form_status, #kt_form_type').selectpicker();
// event handler on check and uncheck on records
datatable.on('kt-datatable--on-check kt-datatable--on-uncheck kt-datatable--on-layout-updated', function(e) {
var checkedNodes = datatable.rows('.kt-datatable__row--active').nodes(); // get selected records
var count = checkedNodes.length; // selected records count
$('#kt_subheader_group_selected_rows').html(count);
if (count > 0) {
$('#kt_subheader_search').addClass('kt-hidden');
$('#kt_subheader_group_actions').removeClass('kt-hidden');
} else {
$('#kt_subheader_search').removeClass('kt-hidden');
$('#kt_subheader_group_actions').addClass('kt-hidden');
}
});
}
// fetch selected records
var selectedFetch = function() {
// event handler on selected records fetch modal launch
$('#kt_datatable_records_fetch_modal').on('show.bs.modal', function(e) {
// show loading dialog
var loading = new KTDialog({'type': 'loader', 'placement': 'top center', 'message': 'Loading ...'});
loading.show();
setTimeout(function() {
loading.hide();
}, 1000);
// fetch selected IDs
var ids = datatable.rows('.kt-datatable__row--active').nodes().find('.kt-checkbox--single > [type="checkbox"]').map(function(i, chk) {
return $(chk).val();
});
// populate selected IDs
var c = document.createDocumentFragment();
for (var i = 0; i < ids.length; i++) {
var li = document.createElement('li');
li.setAttribute('data-id', ids[i]);
li.innerHTML = 'Selected record ID: ' + ids[i];
c.appendChild(li);
}
$(e.target).find('#kt_apps_user_fetch_records_selected').append(c);
}).on('hide.bs.modal', function(e) {
$(e.target).find('#kt_apps_user_fetch_records_selected').empty();
});
};
// selected records status update
var selectedStatusUpdate = function() {
$('#kt_subheader_group_actions_status_change').on('click', "[data-toggle='status-change']", function() {
var status = $(this).find(".kt-nav__link-text").html();
// fetch selected IDs
var ids = datatable.rows('.kt-datatable__row--active').nodes().find('.kt-checkbox--single > [type="checkbox"]').map(function(i, chk) {
return $(chk).val();
});
if (ids.length > 0) {
// learn more: https://sweetalert2.github.io/
swal.fire({
buttonsStyling: false,
html: "Are you sure to update " + ids.length + " selected records status to " + status + " ?",
type: "info",
confirmButtonText: "Yes, update!",
confirmButtonClass: "btn btn-sm btn-bold btn-brand",
showCancelButton: true,
cancelButtonText: "No, cancel",
cancelButtonClass: "btn btn-sm btn-bold btn-default"
}).then(function(result) {
if (result.value) {
swal.fire({
title: 'Deleted!',
text: 'Your selected records statuses have been updated!',
type: 'success',
buttonsStyling: false,
confirmButtonText: "OK",
confirmButtonClass: "btn btn-sm btn-bold btn-brand",
})
// result.dismiss can be 'cancel', 'overlay',
// 'close', and 'timer'
} else if (result.dismiss === 'cancel') {
swal.fire({
title: 'Cancelled',
text: 'You selected records statuses have not been updated!',
type: 'error',
buttonsStyling: false,
confirmButtonText: "OK",
confirmButtonClass: "btn btn-sm btn-bold btn-brand",
});
}
});
}
});
}
// selected records delete
var selectedDelete = function() {
$('#kt_subheader_group_actions_delete_all').on('click', function() {
// fetch selected IDs
var ids = datatable.rows('.kt-datatable__row--active').nodes().find('.kt-checkbox--single > [type="checkbox"]').map(function(i, chk) {
return $(chk).val();
});
if (ids.length > 0) {
// learn more: https://sweetalert2.github.io/
swal.fire({
buttonsStyling: false,
text: "Are you sure to delete " + ids.length + " selected records ?",
type: "danger",
confirmButtonText: "Yes, delete!",
confirmButtonClass: "btn btn-sm btn-bold btn-danger",
showCancelButton: true,
cancelButtonText: "No, cancel",
cancelButtonClass: "btn btn-sm btn-bold btn-brand"
}).then(function(result) {
if (result.value) {
swal.fire({
title: 'Deleted!',
text: 'Your selected records have been deleted! :(',
type: 'success',
buttonsStyling: false,
confirmButtonText: "OK",
confirmButtonClass: "btn btn-sm btn-bold btn-brand",
})
// result.dismiss can be 'cancel', 'overlay',
// 'close', and 'timer'
} else if (result.dismiss === 'cancel') {
swal.fire({
title: 'Cancelled',
text: 'You selected records have not been deleted! :)',
type: 'error',
buttonsStyling: false,
confirmButtonText: "OK",
confirmButtonClass: "btn btn-sm btn-bold btn-brand",
});
}
});
}
});
}
var updateTotal = function() {
datatable.on('kt-datatable--on-layout-updated', function () {
//$('#kt_subheader_total').html(datatable.getTotalRows() + ' Total');
});
};
return {
// public functions
init: function() {
init();
search();
selection();
selectedFetch();
selectedStatusUpdate();
selectedDelete();
updateTotal();
},
};
}();
// On document ready
KTUtil.ready(function() {
KTUserListDatatable.init();
});

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,35 @@
"use strict";
// Class definition
var KTUserProfile = function () {
// Base elements
var avatar;
var offcanvas;
// Private functions
var initAside = function () {
// Mobile offcanvas for mobile mode
offcanvas = new KTOffcanvas('kt_user_profile_aside', {
overlay: true,
baseClass: 'kt-app__aside',
closeBy: 'kt_user_profile_aside_close',
toggleBy: 'kt_subheader_mobile_toggle'
});
}
var initUserForm = function() {
avatar = new KTAvatar('kt_user_avatar');
}
return {
// public functions
init: function() {
initAside();
initUserForm();
}
};
}();
KTUtil.ready(function() {
KTUserProfile.init();
});

View File

@@ -0,0 +1 @@
"use strict";var KTUserProfile={init:function(){new KTOffcanvas("kt_user_profile_aside",{overlay:!0,baseClass:"kt-app__aside",closeBy:"kt_user_profile_aside_close",toggleBy:"kt_subheader_mobile_toggle"}),new KTAvatar("kt_user_avatar")}};KTUtil.ready(function(){KTUserProfile.init()});