98 lines
3.1 KiB
JavaScript
98 lines
3.1 KiB
JavaScript
//====================== This Helpers File For All Part =======================
|
|
function notifyEvs(type, message) {
|
|
"use strict";
|
|
let title = type;
|
|
new Notify({
|
|
status: type,
|
|
title: title.charAt(0).toUpperCase() + title.slice(1),
|
|
text: message,
|
|
effect: 'slide',
|
|
speed: 500,
|
|
customClass: '',
|
|
customIcon: '',
|
|
showIcon: true,
|
|
showCloseButton: true,
|
|
autoclose: true,
|
|
autotimeout: 2300,
|
|
gap: 20,
|
|
distance: 20,
|
|
type: 1,
|
|
position: 'right top',
|
|
customWrapper: '',
|
|
})
|
|
|
|
}
|
|
|
|
function readURL(input, imagePreview) {
|
|
'use strict';
|
|
// Check if there is a selected file
|
|
if (input.files && input.files[0]) {
|
|
// Create a new FileReader
|
|
var reader = new FileReader();
|
|
// Define the onload event
|
|
reader.onload = function(e) {
|
|
// Set the background image of the image preview element
|
|
imagePreview.css('background-image', 'url(' + e.target.result + ')');
|
|
// Hide the image preview and then fade it in
|
|
imagePreview.hide().fadeIn(400);
|
|
};
|
|
// Read the data URL of the selected file
|
|
reader.readAsDataURL(input.files[0]);
|
|
}
|
|
}
|
|
|
|
// Function to handle image preview for dynamically added elements
|
|
function handleImagePreview() {
|
|
'use strict';
|
|
var hostname = window.location.hostname;
|
|
$(".imageUpload").change(function() {
|
|
var previewId = $(this).data("preview-id");
|
|
var imagePreview = $("#" + previewId);
|
|
readURL(this, imagePreview);
|
|
});
|
|
$(".imageRemove").on('click', function(event) {
|
|
var previewId = $(this).prev().data("preview-id");
|
|
var imagePreview = $("#" + previewId);
|
|
|
|
// Change to default placeholder image using the hostname
|
|
imagePreview.css('background-image', 'url(http://' + hostname + '/assets/general/static/placeholder.png)');
|
|
// Set value to indicate removal
|
|
var imageInput = $("#" + previewId+"-remove");
|
|
imageInput.val('coevs-remove');
|
|
|
|
var imageNameInput = $("#" + previewId + "_upload");
|
|
imageInput.attr('name', imageNameInput.attr('name'));
|
|
});
|
|
}
|
|
handleImagePreview()
|
|
|
|
function deleteItem(url, text = "You won't be able to revert this!") {
|
|
Swal.fire({
|
|
title: "Are you sure?",
|
|
text: text,
|
|
icon: "warning",
|
|
showCancelButton: true,
|
|
confirmButtonColor: "#3085d6",
|
|
cancelButtonColor: "#d33",
|
|
confirmButtonText: "Yes, delete it!"
|
|
}).then((result) => {
|
|
if (result.isConfirmed) {
|
|
$.ajax({
|
|
url: url,
|
|
type: "DELETE",
|
|
headers: {
|
|
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
|
|
},
|
|
success: function (data) {
|
|
notifyEvs(data['status'], data['message']);
|
|
setTimeout(function(){
|
|
location.reload();
|
|
}, 1300);
|
|
}
|
|
});
|
|
}
|
|
});
|
|
}
|
|
function generateSlug(value) {
|
|
return value.toLowerCase().replace(/\s+/g, '-').replace(/[^a-z0-9-]/g, '');
|
|
} |