first initial
This commit is contained in:
95
public/assets/js/demo1/pages/custom/chat/chat.js
Normal file
95
public/assets/js/demo1/pages/custom/chat/chat.js
Normal 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();
|
||||
});
|
||||
1
public/assets/js/demo1/pages/custom/chat/chat.min.js
vendored
Normal file
1
public/assets/js/demo1/pages/custom/chat/chat.min.js
vendored
Normal 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()});
|
||||
126
public/assets/js/demo1/pages/custom/contacts/add-contact.js
Normal file
126
public/assets/js/demo1/pages/custom/contacts/add-contact.js
Normal 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();
|
||||
});
|
||||
1
public/assets/js/demo1/pages/custom/contacts/add-contact.min.js
vendored
Normal file
1
public/assets/js/demo1/pages/custom/contacts/add-contact.min.js
vendored
Normal 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()});
|
||||
22
public/assets/js/demo1/pages/custom/contacts/edit-contact.js
Normal file
22
public/assets/js/demo1/pages/custom/contacts/edit-contact.js
Normal 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();
|
||||
});
|
||||
1
public/assets/js/demo1/pages/custom/contacts/edit-contact.min.js
vendored
Normal file
1
public/assets/js/demo1/pages/custom/contacts/edit-contact.min.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
"use strict";var KTContactsEdit={init:function(){new KTAvatar("kt_contacts_edit_avatar")}};jQuery(document).ready(function(){KTContactsEdit.init()});
|
||||
27
public/assets/js/demo1/pages/custom/contacts/list-columns.js
Normal file
27
public/assets/js/demo1/pages/custom/contacts/list-columns.js
Normal 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();
|
||||
});
|
||||
1
public/assets/js/demo1/pages/custom/contacts/list-columns.min.js
vendored
Normal file
1
public/assets/js/demo1/pages/custom/contacts/list-columns.min.js
vendored
Normal 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()});
|
||||
462
public/assets/js/demo1/pages/custom/contacts/list-datatable.js
Normal file
462
public/assets/js/demo1/pages/custom/contacts/list-datatable.js
Normal 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§ion=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> <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();
|
||||
});
|
||||
1
public/assets/js/demo1/pages/custom/contacts/list-datatable.min.js
vendored
Normal file
1
public/assets/js/demo1/pages/custom/contacts/list-datatable.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
578
public/assets/js/demo1/pages/custom/inbox/inbox.js
Normal file
578
public/assets/js/demo1/pages/custom/inbox/inbox.js
Normal 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();
|
||||
});
|
||||
1
public/assets/js/demo1/pages/custom/inbox/inbox.min.js
vendored
Normal file
1
public/assets/js/demo1/pages/custom/inbox/inbox.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
126
public/assets/js/demo1/pages/custom/projects/add-project.js
Normal file
126
public/assets/js/demo1/pages/custom/projects/add-project.js
Normal 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();
|
||||
});
|
||||
1
public/assets/js/demo1/pages/custom/projects/add-project.min.js
vendored
Normal file
1
public/assets/js/demo1/pages/custom/projects/add-project.min.js
vendored
Normal 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()});
|
||||
445
public/assets/js/demo1/pages/custom/projects/list-datatable.js
Normal file
445
public/assets/js/demo1/pages/custom/projects/list-datatable.js
Normal 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§ion=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> <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();
|
||||
});
|
||||
1
public/assets/js/demo1/pages/custom/projects/list-datatable.min.js
vendored
Normal file
1
public/assets/js/demo1/pages/custom/projects/list-datatable.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
126
public/assets/js/demo1/pages/custom/user/add-user.js
Normal file
126
public/assets/js/demo1/pages/custom/user/add-user.js
Normal 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();
|
||||
});
|
||||
1
public/assets/js/demo1/pages/custom/user/add-user.min.js
vendored
Normal file
1
public/assets/js/demo1/pages/custom/user/add-user.min.js
vendored
Normal 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()});
|
||||
22
public/assets/js/demo1/pages/custom/user/edit-user.js
Normal file
22
public/assets/js/demo1/pages/custom/user/edit-user.js
Normal 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();
|
||||
});
|
||||
1
public/assets/js/demo1/pages/custom/user/edit-user.min.js
vendored
Normal file
1
public/assets/js/demo1/pages/custom/user/edit-user.min.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
"use strict";var KTUserEdit={init:function(){new KTAvatar("kt_user_edit_avatar")}};jQuery(document).ready(function(){KTUserEdit.init()});
|
||||
445
public/assets/js/demo1/pages/custom/user/list-datatable.js
Normal file
445
public/assets/js/demo1/pages/custom/user/list-datatable.js
Normal 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§ion=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> <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();
|
||||
});
|
||||
1
public/assets/js/demo1/pages/custom/user/list-datatable.min.js
vendored
Normal file
1
public/assets/js/demo1/pages/custom/user/list-datatable.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
35
public/assets/js/demo1/pages/custom/user/profile.js
Normal file
35
public/assets/js/demo1/pages/custom/user/profile.js
Normal 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();
|
||||
});
|
||||
1
public/assets/js/demo1/pages/custom/user/profile.min.js
vendored
Normal file
1
public/assets/js/demo1/pages/custom/user/profile.min.js
vendored
Normal 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()});
|
||||
Reference in New Issue
Block a user