Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
wp-content
/
plugins
/
siteseo-pro
/
assets
/
js
:
metabox.js
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
jQuery(document).ready(function($){ $(document).on('click', '#siteseo_validate_schema', function(e){ e.preventDefault(); // Fetch Schema var schemaContentWrap = $("#siteseo_schema_preview #raw_schema"); if(!schemaContentWrap.length){ schemaContentWrap = $("#siteseo_schema_preview"); } let schemaContent = schemaContentWrap.text(), $form = $("<form>", { "method": "POST", "action": "https://search.google.com/test/rich-results", "target": "_blank" }), $input = $("<input>", { "type": "hidden", "name": "code_snippet", "value": schemaContent }); $form.append($input); $("body").append($form); $form.submit(); $form.remove(); }); $(document).on('change', '.siteseo_structured_data_type', function(e){ e.preventDefault(); let schemaType = $(this).val(), propertiesContainer = $('#siteseo_schema_properties_container'), customSchemaContainer = $('#siteseo_custom_schema_container'), propertiesDiv = $('.siteseo-schema-properties'); $('.siteseo_structured_data_type').val(schemaType); propertiesDiv.empty(); if(schemaType === ''){ propertiesContainer.addClass('hidden'); customSchemaContainer.addClass('hidden'); $('#siteseo_schema_preview').html(''); $('#raw_schema').text(''); return; } if(schemaType === 'CustomSchema'){ propertiesContainer.addClass('hidden'); customSchemaContainer.removeClass('hidden'); updateCustomSchemaPreview(); return; } else{ propertiesContainer.removeClass('hidden'); customSchemaContainer.addClass('hidden'); } // schemas load let properties = structuredDataMetabox.propertyTemplates[schemaType] || {}; // Create form fields for each property $.each(properties, function(property, defaultValue){ var label = property.replace(/([a-z])([A-Z])/g, '$1 $2'); label = label.charAt(0).toUpperCase() + label.slice(1); let field = '', is_textarea_fields = ['description', 'instructions', 'reviewBody', 'questions', 'step', 'ingredients', 'recipeInstructions', 'courseDescription', 'bookDescription', 'softwareRequirements', 'menu'], is_date_type_fields = ['datePublished', 'dateModified', 'uploadDate', 'startDate', 'endDate', 'foundingDate', 'releaseDate']; if(is_textarea_fields.includes(property)){ field = $('<textarea/>').attr({ name: 'schema_properties[' + property + ']', id: 'siteseo_schema_property_' + property, rows: 3, class: 'widefat'}).val(defaultValue); } else if (is_date_type_fields.includes(property)){ field = $('<input/>').attr({ type: 'datetime-local', name: 'schema_properties[' + property + ']', id: 'siteseo_schema_property_' + property, class: 'widefat'}).val(defaultValue); } else { field = $('<input/>').attr({ type: 'text', name: 'schema_properties[' + property + ']', id: 'siteseo_schema_property_' + property, class: 'widefat'}).val(defaultValue); } $('<p/>') .append($('<label/>').attr('for', 'siteseo_schema_property_' + property).text(label + ':')) .append(field) .appendTo(propertiesDiv); }); // preview update updatePreview(); $(document).on('input', '.siteseo-schema-properties input, #schema_properties textarea', updatePreview); }); // preview function function updatePreview(){ var schemaType = $('.siteseo_structured_data_type').val(); if(schemaType === 'CustomSchema'){ updateCustomSchemaPreview(); return; } var schemaData = { '@context': 'https://schema.org', '@type': schemaType }; $('.siteseo-schema-properties input, #siteseo-schema-properties textarea').each(function(){ var propertyName = $(this).attr('name').match(/\[(.*?)\]/)[1]; var propertyValue = $(this).val(); if(propertyValue !== ''){ schemaData[propertyName] = propertyValue; } }); var jsonString = JSON.stringify(schemaData, null, 2); $('#raw_schema').text(jsonString); // Make sure highlighter element exists if($('#siteseo_schema_preview #siteseo_highlighter').length === 0){ $('#siteseo_schema_preview').html('<div id="siteseo_highlighter"></div><div id="raw_schema" style="display:none;"></div>'); } $('#siteseo_schema_preview #siteseo_highlighter').html(highlightJson(jsonString)); } // Custom schema preview function updateCustomSchemaPreview(){ var customSchema = $('.siteseo_structured_data_custom').val() || ''; $('#raw_schema').text(customSchema); // highlighter element exists if($('#siteseo_schema_preview #siteseo_highlighter').length === 0){ $('#siteseo_schema_preview').html('<div id="siteseo_highlighter"></div><div id="raw_schema" style="display:none;"></div>'); } try{ if(customSchema.trim()){ var jsonObj = JSON.parse(customSchema); $('#siteseo_schema_preview #siteseo_highlighter').html(highlightJson(jsonObj)); } else{ $('#siteseo_schema_preview #siteseo_highlighter').html(''); } } catch(e){ $('#siteseo_schema_preview #siteseo_highlighter').text(customSchema); } } // as per schema change update preview $('.siteseo_structured_data_custom').on('input', updateCustomSchemaPreview); // Initial preview update if($('.siteseo_structured_data_type').val() !== ''){ if($('.siteseo_structured_data_type').val() === 'CustomSchema'){ updateCustomSchemaPreview(); } else{ updatePreview(); $(document).on('input', '#siteseo-schema-properties input, #siteseo-schema-properties textarea', updatePreview); } } });