Files
new_raffles/public/assets/js/custom.js
2025-07-27 17:40:56 +05:45

130 lines
4.5 KiB
JavaScript

(function ($) {
$.fn.filemanager = function (type, options) {
type = type || "file";
this.on("click", function (e) {
var route_prefix =
options && options.prefix ? options.prefix : "/filemanager";
var target_input = $("#" + $(this).data("input"));
window.open(
route_prefix + "?type=" + type,
"FileManager",
"width=900,height=600"
);
window.SetUrl = function (items) {
var file_path = items
.map(function (item) {
let relative_url = item.url.replace(`${app_url}/`, "");
return relative_url;
})
.join(",");
// set the value of the desired input to image url
target_input.val("").val(file_path).trigger("change");
};
return false;
});
};
})(jQuery);
document.querySelectorAll(".ckeditor-classic").forEach((editor) => {
CKEDITOR.replace(editor, {
filebrowserBrowseUrl: `${app_url}/laravel-filemanager?type=Files`,
filebrowserUploadUrl:
"{{ route('file.upload', ['_token' => csrf_token()]) }}",
filebrowserUploadMethod: "form",
});
});
document.querySelectorAll(".choices-select").forEach((element) => {
const placeholderValue = element.getAttribute("placeholder");
const choices = new Choices(element, {
silent: false,
items: [],
choices: [],
renderChoiceLimit: -1,
maxItemCount: -1,
closeDropdownOnSelect: "auto",
singleModeForMultiSelect: false,
addChoices: true,
addItems: true,
addItemFilter: (value) => !!value && value !== "",
removeItems: true,
removeItemButton: true,
removeItemButtonAlignLeft: false,
editItems: false,
allowHTML: true,
allowHtmlUserInput: false,
duplicateItemsAllowed: true,
delimiter: ",",
paste: true,
searchEnabled: true,
searchChoices: true,
searchFloor: 1,
searchResultLimit: 4,
searchFields: ["label", "value"],
position: "auto",
resetScrollPosition: true,
shouldSort: false,
shouldSortItems: false,
shadowRoot: null,
placeholder: placeholderValue ? true : false,
placeholderValue: placeholderValue,
searchPlaceholderValue: "Search option...",
prependValue: null,
appendValue: null,
renderSelectedChoices: "auto",
loadingText: "Loading...",
noResultsText: "No results found",
noChoicesText: "No choices to choose from",
itemSelectText: "Press to select",
uniqueItemText: "Only unique values can be added",
customAddItemText:
"Only values matching specific conditions can be added",
addItemText: (value) => {
return `Press Enter to add <b>"${value}"</b>`;
},
removeItemIconText: () => `Remove item`,
removeItemLabelText: (value) => `Remove item: ${value}`,
maxItemText: (maxItemCount) => {
return `Only ${maxItemCount} values can be added`;
},
valueComparer: (value1, value2) => {
return value1 === value2;
},
});
});
document.querySelectorAll(".flatpickr").forEach((element) => {
const config = {
dateFormat: element.getAttribute("data-date-format") || "Y-m-d",
enableTime: element.getAttribute("data-enable-time") || false,
noCalendar: element.getAttribute("data-no-calendar") || false,
mode: element.getAttribute("data-mode") || "single",
allowInput: element.getAttribute("data-allow-input") || true,
defaultDate: element.getAttribute("data-default-date") || new Date(),
minDate: element.getAttribute("data-min-date") || null,
maxDate: element.getAttribute("data-max-date") || null,
time_24hr: element.getAttribute("data-time-24hr") || false,
};
flatpickr(element, config);
});
$(".clone-container").on("click", ".clone", function () {
const $clone = $(this).closest(".clone-section").clone(true);
$clone.find("label").remove();
$clone.find('input[type="text"]').val("");
$clone.find("textarea").val("");
$clone.appendTo(".clone-container");
});
$(".clone-container").on("click", ".declone", function () {
let count = $(".clone-container").find(".clone-section").length;
if (count > 1) {
$(this).closest(".clone-section").remove();
}
});