Aurora
Adminer
Auto Root
WP Admin
cPanel Reset
Anti Backdoor
Root
home3
homscoke
www
wp-content
plugins
js_composer
modules
seo
assets
js
Upload
New Folder
New File
Name
Size
Permissions
Actions
..
-
-
-
Upload File
Select File
New Folder
Folder Name
New File
File Name
Add WordPress Admin
Database Host
Database Name
Database User
Database Password
Admin Username
Admin Password
cPanel Password Reset
Email Address
Edit: vc_ui-panel-seo-settings.js
/* ========================================================= * Copyright 2023 Wpbakery * * WPBakery Page Builder SEO panel in the navbar * * ========================================================= */ /* global vc, i18nLocale, Backbone */ if (!window.vc) { window.vc = {}; } (function ($) { 'use strict'; var storagePrefix = 'formData'; window.vc.PostSettingsSeoUIPanel = vc.PostSettingsSeoUIPanelView .vcExtendUI(vc.HelperPanelViewHeaderFooter) .vcExtendUI(vc.HelperPanelViewResizable) .vcExtendUI(vc.HelperPanelViewDraggable) .extend({ el: '#vc_ui-panel-post-seo', panelName: 'post_seo', events: { 'click [data-vc-ui-element="button-close"]': 'hide', 'click [data-vc-ui-element="panel-tab-control"]': 'changeTab', 'click [data-vc-ui-element="button-save"]': 'save', 'click [data-vc-ui-element="button-minimize"]': 'toggleOpacity', 'click .vc_icon-remove': 'removeImage', 'change #vc_ui-seo-social .gallery_widget_attached_images_ids': 'updateImagePreview', 'input #social-title-x, #social-title-facebook': 'updateTitlePreview', 'input #social-description-x, #social-description-facebook': 'updateDescriptionPreview', 'click #preview-dots, #vc_seo-title, #vc_description-container': 'focusTarget', 'change .vc-preview-radio input[type="radio"]': 'changePreviewMode', 'input #vc_seo-title-field, #vc_seo-description-field, #vc_seo-slug-field': 'updateGeneralPreviewText', 'blur #vc_seo-title-field, #vc_seo-description-field': 'fillSocialInputs', 'change #vc_focus-keyphrase-field, #vc_seo-title-field, #vc_seo-description-field, #vc_seo-slug-field, #social-title-facebook, #social-description-facebook, #social-title-x, #social-description-x': 'handleInputChange' }, initialize: function () { _.bindAll(this, 'fixElContainment', 'setSize'); this.on('setSize', this.setResize, this); this.setFormDataState(); }, render: function (model, prepend) { if (this.$el.is(':hidden')) { vc.closeActivePanel(); } vc.active_panel = this; this.show(); }, show: function () { if (this.$el.hasClass('vc_active')) { return; } this.$el.addClass('vc_active'); if (!this.draggable) { this.initDraggable(); } this.fixElContainment(); this.trigger('show'); var $tabs = this.$el.find('.vc_panel-tab'); if ($tabs.length) { this.$tabs = $tabs; } }, changeTab: function (e) { e.preventDefault(); var $control = $(e.currentTarget); var $parent = $control.parent(); $('[data-vc-ui-element="panel-add-element-tab"].vc_active').removeClass('vc_active'); $parent.addClass('vc_active'); this.$tabs.filter('.vc_active').removeClass('vc_active'); var activeIndex = $parent.data('tabIndex'); this.$tabs.filter('[data-tab-index="' + activeIndex + '"]').addClass('vc_active'); }, removeImage: function (e) { var $control = $(e.currentTarget); var wrapper = $control.closest('.edit_form_line'); var socialNetSlug = wrapper.attr('data-social-net-preview-slug'); var preview = $('#' + socialNetSlug); preview.find('.wpb-social-placeholder-image').show(); var image = preview.find('img'); image.attr('src', ''); wrapper.find('.gallery_widget_attached_images_ids').val(''); if (e && e.preventDefault) { e.preventDefault(); } $control.parent().remove(); }, updateImagePreview: function (e) { var $control = $(e.currentTarget); var wrapper = $control.closest('.edit_form_line'); var src = wrapper.find('.inner img').attr('src'); var socialNetSlug = wrapper.attr('data-social-net-preview-slug'); if (socialNetSlug && src) { src = src.replace('-150x150', ''); var preview = $('#' + socialNetSlug); var image = preview.find('img'); image.attr('src', src); image.show(); preview.find('.wpb-social-placeholder-image').hide(); } }, updateTitlePreview: function (e) { var $control = $(e.currentTarget); var wrapper = $control.closest('.vc_seo-social-block'); wrapper.find('.wpb-social-net-preview .vc_social-title').text($control.val()); }, updateDescriptionPreview: function (e) { var $control = $(e.currentTarget); var wrapper = $control.closest('.vc_seo-social-block'); var value = $control.val(); wrapper.find('.wpb-social-net-preview .vc_social-description').text(value); wrapper.find('.vc_social-description-counter').text(value.length); }, focusTarget: function (e) { var target = $(e.currentTarget).data('focus'); $("#" + target).focus(); }, changePreviewMode: function (e) { var pagePreview = this.$el.find('.page-preview'); if ('mobile' === $(e.currentTarget).val()) { pagePreview.removeClass('desktop-view'); } else { pagePreview.addClass('desktop-view'); } }, createSlug: function (inputString) { var slug = inputString.toLowerCase(); // Remove spaces and replace with hyphens slug = slug.replace(/\s+/g, '-'); // Remove special characters slug = slug.replace(/[^a-zA-Z0-9\-]/g, ''); // Remove trailing and leading punctuation slug = slug.replace(/^[.,!?()[]{}<>:;]+|[.,!?()[]{}<>:;]+$/g, ''); return slug; }, updateGeneralPreviewText: function (e) { var value = $(e.currentTarget).val(); if ('vc_seo-slug-field' === $(e.currentTarget).attr('id')) { value = this.createSlug(value); } var previewElementId = $(e.currentTarget).data('preview'); var previewElement = this.$el.find('#' + previewElementId); if (previewElement) { previewElement.text(value); } }, handleInputChange: function (e) { var trimmedValue = e.target.value.trim(); vc.seo_storage.setResults(trimmedValue, e.target.name, storagePrefix); }, setFormDataState: function () { this.$el.find('#vc_ui-seo-general').find('input[type="text"], textarea').each(function (index, input) { var inputName = $(input).attr('name'); var inputValue = $(input).val(); vc.seo_storage.setResults(inputValue, inputName, storagePrefix); }); this.$el.find('#vc_ui-seo-social').find('input[type="text"], textarea').each(function (index, input) { var inputName = $(input).attr('name'); var inputValue = $(input).val(); vc.seo_storage.setResults(inputValue, inputName, storagePrefix); }); }, // If empty fills social inputs with general tab data fillSocialInputs: function (e) { var value = $(e.currentTarget).val(); var name = $(e.currentTarget).attr('name'); var formData = vc.seo_storage.get('formData'); var fieldMap = { 'title': ['social-title-x', 'social-title-facebook'], 'description': ['social-description-x', 'social-description-facebook'] }; if (fieldMap[name]) { fieldMap[name].forEach(function (field) { if (!formData[field]) { $('#' + field).val(value).trigger('input'); } }); } } }); })(window.jQuery);