BossBey File Manager
PHP:
8.2.30
OS:
Linux
User:
imagivibe
Root
/
home
/
imagivibe
/
public_html
/
CTR
/
wp-content
/
plugins
/
js_composer
/
modules
/
seo
/
assets
/
js
📤 Upload
📝 New File
📁 New Folder
Close
Editing: storage.js
/* global vc, Backbone */ if ( !window.vc ) { window.vc = {}; } ( function ( $ ) { 'use strict'; // Store and manage state for // SEO fields data and analysis results data // via Backbone Model var SeoStorage = Backbone.Model.extend({ defaults: { formData: { keyphrase: '', title: '', description: '', slug: '', isUsedKeyphrase: '' }, results: [] }, setResults: function ( item, type, state ) { var currentState = this.get( state ); if ( 'focus-keyphrase' === type ) { type = 'keyphrase'; if ( item && item !== this.get( state ).keyphrase ) { var _this = this; var data = { action: 'wpb_seo_check_key_phrase', key_phrase: item, post_id: window.vc_post_id, _vcnonce: window.vcAdminNonce }; $.ajax({ type: 'POST', url: window.ajaxurl, data: data }).done( function ( response ) { if ( response.success ) { currentState.isUsedKeyphrase = response.data; _this.set( state, currentState ); _this.trigger( 'formData', 'change', currentState ); } }).fail( function ( response ) { console.error( 'Failed to get the previously used keyphrase response: ' + response ); }); } } currentState[type] = item; this.set( state, currentState ); if ( 'formData' === state ) { this.trigger( 'formData', 'change', currentState ); } }, // Custom method to add, update, or remove an item in the results array updateResult: function ( state, title, description ) { var item = { state: state, title: title, description: description }; var currentResults = this.get( 'results' ).slice(); // Create a shallow copy // Find the index of the item in the array var indexToModify = currentResults.findIndex( function ( result ) { return result.title === item.title; }); // If the item was found, update it in the array if ( -1 !== indexToModify ) { currentResults[indexToModify] = item; this.trigger( 'resultChanged', 'update', item ); } else { // If the item was not found, add it to the array currentResults.push( item ); this.trigger( 'resultChanged', 'add', item ); } // Update the result array in the model this.set( 'results', currentResults ); }, resetResult: function ( title ) { var currentResults = this.get( 'results' ); var resetResults = currentResults.filter( function ( result ) { return result.title !== title; }); this.set( 'results', resetResults ); } }); vc.seo_storage = new SeoStorage(); })( window.jQuery );
Save
Cancel