/home/techb158/immovalet.com/platform/core/base/resources/assets/js
Edit: /home/techb158/immovalet.com/platform/core/base/resources/assets/js/script.js (31618B)
class Botble {
constructor() {
this.countCharacter();
this.manageSidebar();
this.handleWayPoint();
this.handlePortletTools();
Botble.initResources();
Botble.handleCounterUp();
Botble.initMediaIntegrate();
if (BotbleVariables && BotbleVariables.authorized === '0') {
this.processAuthorize();
}
}
static blockUI(options) {
options = $.extend(true, {}, options);
let html = '';
if (options.animate) {
html = '
';
} else if (options.iconOnly) {
html = '
';
} else if (options.textOnly) {
html = '
' + (options.message ? options.message : 'LOADING...') + '
';
} else {
html = '
' + (options.message ? options.message : 'LOADING...') + '';
}
if (options.target) { // element blocking
let el = $(options.target);
if (el.height() <= $(window).height()) {
options.cenrerY = true;
}
el.block({
message: html,
baseZ: options.zIndex ? options.zIndex : 1000,
centerY: options.cenrerY !== undefined ? options.cenrerY : false,
css: {
top: '10%',
border: '0',
padding: '0',
backgroundColor: 'none'
},
overlayCSS: {
backgroundColor: options.overlayColor ? options.overlayColor : '#555555',
opacity: options.boxed ? 0.05 : 0.1,
cursor: 'wait'
}
});
} else { // page blocking
$.blockUI({
message: html,
baseZ: options.zIndex ? options.zIndex : 1000,
css: {
border: '0',
padding: '0',
backgroundColor: 'none'
},
overlayCSS: {
backgroundColor: options.overlayColor ? options.overlayColor : '#555555',
opacity: options.boxed ? 0.05 : 0.1,
cursor: 'wait'
}
});
}
}
static unblockUI(target) {
if (target) {
$(target).unblock({
onUnblock: () => {
$(target).css('position', '');
$(target).css('zoom', '');
}
});
} else {
$.unblockUI();
}
}
static showNotice(messageType, message, messageHeader = '') {
toastr.clear();
toastr.options = {
closeButton: true,
positionClass: 'toast-bottom-right',
onclick: null,
showDuration: 1000,
hideDuration: 1000,
timeOut: 10000,
extendedTimeOut: 1000,
showEasing: 'swing',
hideEasing: 'linear',
showMethod: 'fadeIn',
hideMethod: 'fadeOut'
};
if (!messageHeader) {
switch (messageType) {
case 'error':
messageHeader = BotbleVariables.languages.notices_msg.error;
break;
case 'success':
messageHeader = BotbleVariables.languages.notices_msg.success;
break;
}
}
toastr[messageType](message, messageHeader);
}
static showError(message, messageHeader = '') {
this.showNotice('error', message, messageHeader);
}
static showSuccess(message, messageHeader = '') {
this.showNotice('success', message, messageHeader);
}
static handleError(data) {
if (typeof (data.errors) !== 'undefined' && !_.isArray(data.errors)) {
Botble.handleValidationError(data.errors);
} else {
if (typeof (data.responseJSON) !== 'undefined') {
if (typeof (data.responseJSON.errors) !== 'undefined') {
if (data.status === 422) {
Botble.handleValidationError(data.responseJSON.errors);
}
} else if (typeof (data.responseJSON.message) !== 'undefined') {
Botble.showError(data.responseJSON.message);
} else {
$.each(data.responseJSON, (index, el) => {
$.each(el, (key, item) => {
Botble.showError(item);
});
});
}
} else {
Botble.showError(data.statusText);
}
}
}
static handleValidationError(errors) {
let message = '';
$.each(errors, (index, item) => {
message += item + '
';
let $input = $('*[name="' + index + '"]');
if ($input.closest('.next-input--stylized').length) {
$input.closest('.next-input--stylized').addClass('field-has-error');
} else {
$input.addClass('field-has-error');
}
let $input_array = $('*[name$="[' + index + ']"]');
if ($input_array.closest('.next-input--stylized').length) {
$input_array.closest('.next-input--stylized').addClass('field-has-error');
} else {
$input_array.addClass('field-has-error');
}
});
Botble.showError(message);
}
countCharacter() {
$.fn.charCounter = function (max, settings) {
max = max || 100;
settings = $.extend({
container: '
',
classname: 'charcounter',
format: '(%1 ' + BotbleVariables.languages.system.character_remain + ')',
pulse: true,
delay: 0
}, settings);
let p, timeout;
let count = (el, container) => {
el = $(el);
if (el.val().length > max) {
el.val(el.val().substring(0, max));
if (settings.pulse && !p) {
pulse(container, true);
}
}
if (settings.delay > 0) {
if (timeout) {
window.clearTimeout(timeout);
}
timeout = window.setTimeout(() => {
container.html(settings.format.replace(/%1/, (max - el.val().length)));
}, settings.delay);
} else {
container.html(settings.format.replace(/%1/, (max - el.val().length)));
}
};
let pulse = (el, again) => {
if (p) {
window.clearTimeout(p);
p = null;
}
el.animate({
opacity: 0.1
}, 100, () => {
$(el).animate({
opacity: 1.0
}, 100);
});
if (again) {
p = window.setTimeout(() => {
pulse(el)
}, 200);
}
};
return this.each((index, el) => {
let container;
if (!settings.container.match(/^<.+>$/)) {
// use existing element to hold counter message
container = $(settings.container);
} else {
// append element to hold counter message (clean up old element first)
$(el).next('.' + settings.classname).remove();
container = $(settings.container)
.insertAfter(el)
.addClass(settings.classname);
}
$(el)
.off('.charCounter')
.on('keydown.charCounter', () => {
count(el, container);
})
.on('keypress.charCounter', () => {
count(el, container);
})
.on('keyup.charCounter', () => {
count(el, container);
})
.on('focus.charCounter', () => {
count(el, container);
})
.on('mouseover.charCounter', () => {
count(el, container);
})
.on('mouseout.charCounter', () => {
count(el, container);
})
.on('paste.charCounter', () => {
setTimeout(() => {
count(el, container);
}, 10);
});
if (el.addEventListener) {
el.addEventListener('input', () => {
count(el, container);
}, false);
}
count(el, container);
});
};
$(document).on('click', 'input[data-counter], textarea[data-counter]', event => {
$(event.currentTarget).charCounter($(event.currentTarget).data('counter'), {
container: '
'
});
});
}
manageSidebar() {
let body = $('body');
let navigation = $('.navigation');
let sidebar_content = $('.sidebar-content');
navigation.find('li.active').parents('li').addClass('active');
navigation.find('li').has('ul').children('a').parent('li').addClass('has-ul');
$(document).on('click', '.sidebar-toggle.d-none', event => {
event.preventDefault();
body.toggleClass('sidebar-narrow');
body.toggleClass('page-sidebar-closed');
if (body.hasClass('sidebar-narrow')) {
navigation.children('li').children('ul').css('display', '');
sidebar_content.delay().queue(() => {
$(event.currentTarget).show().addClass('animated fadeIn').clearQueue();
});
} else {
navigation.children('li').children('ul').css('display', 'none');
navigation.children('li.active').children('ul').css('display', 'block');
sidebar_content.delay().queue(() => {
$(event.currentTarget).show().addClass('animated fadeIn').clearQueue();
});
}
});
}
static initDatePicker(element) {
if (jQuery().bootstrapDP) {
let format = $(document).find(element).data('date-format');
if (!format) {
format = 'yyyy-mm-dd';
}
$(document).find(element).bootstrapDP({
maxDate: 0,
changeMonth: true,
changeYear: true,
autoclose: true,
dateFormat: format,
});
}
}
static initResources() {
if (jQuery().select2) {
$(document).find('.select-multiple').select2({
width: '100%',
allowClear: true,
});
$(document).find('.select-search-full').select2({
width: '100%'
});
$(document).find('.select-full').select2({
width: '100%',
minimumResultsForSearch: -1
});
$('select[multiple].select-sorting').on('select2:select', function (evt) {
const $element = $(evt.params.data.element);
$element.detach();
$(this).append($element);
$(this).trigger("change");
});
}
if (jQuery().timepicker) {
if (jQuery().timepicker) {
$('.timepicker-default').timepicker({
autoclose: true,
showSeconds: false,
minuteStep: 1,
defaultTime: false
});
$('.timepicker-24').timepicker({
autoclose: true,
minuteStep: 5,
showSeconds: false,
showMeridian: false,
defaultTime: false
});
}
}
if (jQuery().inputmask) {
$(document).find('.input-mask-number').inputmask({
alias: 'numeric',
rightAlign: false,
digits: 2,
groupSeparator: ',',
placeholder: '0',
autoGroup: true,
autoUnmask: true,
removeMaskOnSubmit: true,
});
}
if (jQuery().colorpicker) {
$('.color-picker').colorpicker({
inline: false,
container: true,
format: 'hex',
extensions: [
{
name: 'swatches',
options: {
colors: {
'tetrad1': '#000000',
'tetrad2': '#000000',
'tetrad3': '#000000',
'tetrad4': '#000000'
},
namesAsValues: false
}
}
]
})
.on('colorpickerChange colorpickerCreate', function (e) {
var colors = e.color.generate('tetrad');
colors.forEach(function (color, i) {
var colorStr = color.string(),
swatch = e.colorpicker.picker
.find('.colorpicker-swatch[data-name="tetrad' + (i + 1) + '"]');
swatch
.attr('data-value', colorStr)
.attr('title', colorStr)
.find('> i')
.css('background-color', colorStr);
});
});
}
if (jQuery().fancybox) {
$('.iframe-btn').fancybox({
width: '900px',
height: '700px',
type: 'iframe',
autoScale: false,
openEffect: 'none',
closeEffect: 'none',
overlayShow: true,
overlayOpacity: 0.7
});
$('.fancybox').fancybox({
openEffect: 'none',
closeEffect: 'none',
overlayShow: true,
overlayOpacity: 0.7,
helpers: {
media: {}
}
});
}
if (jQuery().tooltip) {
$('[data-toggle="tooltip"]').tooltip({placement: 'top', boundary: 'window'});
}
if (jQuery().areYouSure) {
$('form').areYouSure();
}
Botble.initDatePicker('.datepicker');
if (jQuery().mCustomScrollbar) {
Botble.callScroll($('.list-item-checkbox'));
}
if (jQuery().textareaAutoSize) {
$('textarea.textarea-auto-height').textareaAutoSize();
}
$('.select2_google_fonts_picker').each(function (i, obj) {
if (!$(obj).hasClass('select2-hidden-accessible')){
$(obj).select2({
templateResult: function (opt) {
if (!opt.id) {
return opt.text;
}
return $('
' + opt.text + '');
},
})
}
});
document.dispatchEvent(new CustomEvent('core-init-resources'));
}
static numberFormat(number, decimals, dec_point, thousands_sep) {
// * example 1: number_format(1234.56);
// * returns 1: '1,235'
// * example 2: number_format(1234.56, 2, ',', ' ');
// * returns 2: '1 234,56'
// * example 3: number_format(1234.5678, 2, '.', '');
// * returns 3: '1234.57'
// * example 4: number_format(67, 2, ',', '.');
// * returns 4: '67,00'
// * example 5: number_format(1000);
// * returns 5: '1,000'
// * example 6: number_format(67.311, 2);
// * returns 6: '67.31'
// * example 7: number_format(1000.55, 1);
// * returns 7: '1,000.6'
// * example 8: number_format(67000, 5, ',', '.');
// * returns 8: '67.000,00000'
// * example 9: number_format(0.9, 0);
// * returns 9: '1'
// * example 10: number_format('1.20', 2);
// * returns 10: '1.20'
// * example 11: number_format('1.20', 4);
// * returns 11: '1.2000'
// * example 12: number_format('1.2000', 3);
// * returns 12: '1.200'
let n = !isFinite(+number) ? 0 : +number,
prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,
dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
toFixedFix = (n, prec) => {
// Fix for IE parseFloat(0.55).toFixed(0) = 0;
let k = Math.pow(10, prec);
return Math.round(n * k) / k;
},
s = (prec ? toFixedFix(n, prec) : Math.round(n)).toString().split('.');
if (s[0].length > 3) {
s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep);
}
if ((s[1] || '').length < prec) {
s[1] = s[1] || '';
s[1] += new Array(prec - s[1].length + 1).join('0');
}
return s.join(dec);
}
static callScroll(obj) {
obj.mCustomScrollbar({
axis: 'yx',
theme: 'minimal-dark',
scrollButtons: {
enable: true
},
callbacks: {
whileScrolling: function () {
obj.find('.tableFloatingHeaderOriginal').css({
'top': -this.mcs.top + 'px'
});
}
}
});
obj.stickyTableHeaders({scrollableArea: obj, 'fixedOffset': 2});
}
handleWayPoint() {
if ($('#waypoint').length > 0) {
new Waypoint({
element: document.getElementById('waypoint'),
handler: (direction) => {
if (direction === 'down') {
$('.form-actions-fixed-top').removeClass('hidden');
} else {
$('.form-actions-fixed-top').addClass('hidden');
}
}
});
}
};
static handleCounterUp() {
if (!$().counterUp) {
return;
}
$('[data-counter="counterup"]').counterUp({
delay: 10,
time: 1000
});
}
static initMediaIntegrate() {
if (jQuery().rvMedia) {
$('[data-type="rv-media-standard-alone-button"]').rvMedia({
multiple: false,
onSelectFiles: (files, $el) => {
$($el.data('target')).val(files[0].url);
}
});
$.each($(document).find('.btn_gallery'), function (index, item) {
$(item).rvMedia({
multiple: false,
filter: $(item).data('action') === 'select-image' ? 'image' : 'everything',
view_in: 'all_media',
onSelectFiles: (files, $el) => {
switch ($el.data('action')) {
case 'media-insert-ckeditor':
let content = '';
$.each(files, (index, file) => {
let link = file.full_url;
if (file.type === 'youtube') {
link = link.replace('watch?v=', 'embed/');
content += '
';
} else if (file.type === 'image') {
content += '

';
} else {
content += '
' + file.name + '';
}
});
window.EDITOR.CKEDITOR[$el.data('result')].insertHtml(content);
break;
case 'media-insert-tinymce':
let html = '';
$.each(files, (index, file) => {
let link = file.full_url;
if (file.type === 'youtube') {
link = link.replace('watch?v=', 'embed/');
html += '
';
} else if (file.type === 'image') {
html += '

';
} else {
html += '
' + file.name + '';
}
});
tinymce.activeEditor.execCommand('mceInsertContent', false, html);
break;
case 'select-image':
let firstImage = _.first(files);
$el.closest('.image-box').find('.image-data').val(firstImage.url);
$el.closest('.image-box').find('.preview_image').attr('src', firstImage.thumb);
$el.closest('.image-box').find('.preview-image-wrapper').show();
break;
case 'attachment':
let firstAttachment = _.first(files);
$el.closest('.attachment-wrapper').find('.attachment-url').val(firstAttachment.url);
$el.closest('.attachment-wrapper').find('.attachment-details').html('
' + firstAttachment.url + '');
break;
}
}
});
});
$(document).on('click', '.btn_remove_image', event => {
event.preventDefault();
$(event.currentTarget).closest('.image-box').find('.preview-image-wrapper').hide();
$(event.currentTarget).closest('.image-box').find('.image-data').val('');
});
$(document).on('click', '.btn_remove_attachment', event => {
event.preventDefault();
$(event.currentTarget).closest('.attachment-wrapper').find('.attachment-details a').remove();
$(event.currentTarget).closest('.attachment-wrapper').find('.attachment-url').val('');
});
new RvMediaStandAlone('.js-btn-trigger-add-image', {
filter: 'image',
view_in: 'all_media',
onSelectFiles: (files, $el) => {
let $currentBoxList = $el.closest('.gallery-images-wrapper').find('.images-wrapper .list-gallery-media-images');
$currentBoxList.removeClass('hidden');
$('.default-placeholder-gallery-image').addClass('hidden');
_.forEach(files, (file) => {
let template = $(document).find('#gallery_select_image_template').html();
let imageBox = template
.replace(/__name__/gi, $el.attr('data-name'));
let $template = $('
' + imageBox + '');
$template.find('.image-data').val(file.url);
$template.find('.preview_image').attr('src', file.thumb).show();
$currentBoxList.append($template);
});
}
});
new RvMediaStandAlone('.images-wrapper .btn-trigger-edit-gallery-image', {
filter: 'image',
view_in: 'all_media',
onSelectFiles: (files, $el) => {
let firstItem = _.first(files);
let $currentBox = $el.closest('.gallery-image-item-handler').find('.image-box');
let $currentBoxList = $el.closest('.list-gallery-media-images');
$currentBox.find('.image-data').val(firstItem.url);
$currentBox.find('.preview_image').attr('src', firstItem.thumb).show();
_.forEach(files, (file, index) => {
if (!index) {
return;
}
let template = $(document).find('#gallery_select_image_template').html();
let imageBox = template
.replace(/__name__/gi, $currentBox.find('.image-data').attr('name'));
let $template = $('
' + imageBox + '');
$template.find('.image-data').val(file.url);
$template.find('.preview_image').attr('src', file.thumb).show();
$currentBoxList.append($template);
});
}
});
$(document).on('click', '.btn-trigger-remove-gallery-image', event => {
event.preventDefault();
$(event.currentTarget).closest('.gallery-image-item-handler').remove();
if ($('.list-gallery-media-images').find('.gallery-image-item-handler').length === 0) {
$('.default-placeholder-gallery-image').removeClass('hidden');
}
});
$('.list-gallery-media-images').each((index, item) => {
if (jQuery().sortable) {
let $current = $(item);
if ($current.data('ui-sortable')) {
$current.sortable('destroy');
}
$current.sortable();
}
});
}
}
static getViewPort() {
let e = window,
a = 'inner';
if (!('innerWidth' in window)) {
a = 'client';
e = document.documentElement || document.body;
}
return {
width: e[a + 'Width'],
height: e[a + 'Height']
};
}
handlePortletTools() {
// handle portlet remove
// handle portlet fullscreen
$('body').on('click', '.portlet > .portlet-title .fullscreen', event => {
event.preventDefault();
let _self = $(event.currentTarget);
let portlet = _self.closest('.portlet');
if (portlet.hasClass('portlet-fullscreen')) {
_self.removeClass('on');
portlet.removeClass('portlet-fullscreen');
$('body').removeClass('page-portlet-fullscreen');
portlet.children('.portlet-body').css('height', 'auto');
} else {
let height = Botble.getViewPort().height -
portlet.children('.portlet-title').outerHeight() -
parseInt(portlet.children('.portlet-body').css('padding-top')) -
parseInt(portlet.children('.portlet-body').css('padding-bottom'));
_self.addClass('on');
portlet.addClass('portlet-fullscreen');
$('body').addClass('page-portlet-fullscreen');
portlet.children('.portlet-body').css('height', height);
}
});
$('body').on('click', '.portlet > .portlet-title > .tools > .collapse, .portlet .portlet-title > .tools > .expand', event => {
event.preventDefault();
let _self = $(event.currentTarget);
let el = _self.closest('.portlet').children('.portlet-body');
if (_self.hasClass('collapse')) {
_self.removeClass('collapse').addClass('expand');
el.slideUp(200);
} else {
_self.removeClass('expand').addClass('collapse');
el.slideDown(200);
}
});
}
static initCodeEditor(id, type = 'css') {
$(document).find('#' + id).wrap('
');
$('#wrapper_' + id).append('
');
CodeMirror.fromTextArea(document.getElementById(id), {
extraKeys: {'Ctrl-Space': 'autocomplete'},
lineNumbers: true,
mode: type,
autoRefresh: true,
lineWrapping: true,
});
$('.handle-tool-drag').mousedown(event => {
let _self = $(event.currentTarget);
_self.attr('data-start_h', _self.parent().find('.CodeMirror').height()).attr('data-start_y', event.pageY);
$('body').attr('data-dragtool', _self.attr('id')).on('mousemove', Botble.onDragTool);
$(window).on('mouseup', Botble.onReleaseTool);
});
}
static onDragTool(e) {
let ele = '#' + $('body').attr('data-dragtool');
let start_h = parseInt($(ele).attr('data-start_h'));
$(ele).parent().find('.CodeMirror').css('height', Math.max(200, start_h + e.pageY - $(ele).attr('data-start_y')));
}
static onReleaseTool() {
$('body').off('mousemove', Botble.onDragTool);
$(window).off('mouseup', Botble.onReleaseTool);
}
processAuthorize() {
$.ajax({
url: route('membership.authorize'),
type: 'POST'
});
}
}
if (jQuery().datepicker && jQuery().datepicker.noConflict) {
$.fn.bootstrapDP = $.fn.datepicker.noConflict();
}
$(document).ready(() => {
new Botble();
window.Botble = Botble;
});