262 lines
10 KiB
JavaScript
262 lines
10 KiB
JavaScript
|
function showHidePostFormatField(){
|
||
|
jQuery('#normal-sortables>[id*="tw-format-"]').each(function(){
|
||
|
if(jQuery(this).attr('id').replace("tw","post")===jQuery('#post-formats-select input:radio:checked').attr('id').replace('image', '0')){
|
||
|
jQuery(this).css('display', 'block');
|
||
|
} else {
|
||
|
jQuery(this).css('display', 'none');
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
jQuery(function(){
|
||
|
|
||
|
/* Color Picker */
|
||
|
jQuery(".color_picker").ColorPicker({
|
||
|
onShow: function (colpkr) {
|
||
|
jQuery(colpkr).fadeIn(500);
|
||
|
return false;
|
||
|
},
|
||
|
onHide: function (colpkr) {
|
||
|
jQuery(colpkr).fadeOut(500);
|
||
|
return false;
|
||
|
},
|
||
|
onChange: function (hsb, hex, rgb, el) {
|
||
|
jQuery(el).parent().find('.color_picker_inner').css('backgroundColor', '#' + hex);
|
||
|
jQuery(el).parent().find('.color_picker_value').val('#' + hex);
|
||
|
}
|
||
|
});
|
||
|
|
||
|
/* Check show hide */
|
||
|
jQuery('.check-show-hide').change(function() {
|
||
|
var datashow = jQuery(this).attr('data-show');
|
||
|
var datahide = jQuery(this).attr('data-hide');
|
||
|
if(jQuery(this).is(':checked')) {
|
||
|
jQuery(datashow).fadeIn();
|
||
|
jQuery(datahide).fadeOut();
|
||
|
} else {
|
||
|
jQuery(datashow).fadeOut();
|
||
|
jQuery(datahide).fadeIn();
|
||
|
}
|
||
|
});
|
||
|
jQuery('.check-show-hide').each(function() {
|
||
|
jQuery(this).change();
|
||
|
});
|
||
|
|
||
|
|
||
|
/* Select options */
|
||
|
jQuery(".tw-metaboxes select").each(function(){
|
||
|
$this = jQuery(this);
|
||
|
if( $this.attr("data-value") != "" ){
|
||
|
$this.val($this.attr("data-value"));
|
||
|
}
|
||
|
});
|
||
|
|
||
|
|
||
|
jQuery("#header_type select").change(function(){
|
||
|
$this = jQuery(this);
|
||
|
if( $this.val() == "subtitle" ){
|
||
|
jQuery(".tw-metaboxes #subtitle").fadeIn();
|
||
|
jQuery(".tw-metaboxes #bg_image").fadeIn();
|
||
|
jQuery(".tw-metaboxes #slider_id").fadeOut();
|
||
|
jQuery(".tw-metaboxes #googlemap").fadeOut();
|
||
|
} else if($this.val() == "slider") {
|
||
|
jQuery(".tw-metaboxes #slider_id").fadeIn();
|
||
|
jQuery(".tw-metaboxes #subtitle").fadeOut();
|
||
|
jQuery(".tw-metaboxes #bg_image").fadeOut();
|
||
|
jQuery(".tw-metaboxes #googlemap").fadeOut();
|
||
|
} else if($this.val() == "map") {
|
||
|
jQuery(".tw-metaboxes #googlemap").fadeIn();
|
||
|
jQuery(".tw-metaboxes #slider_id").fadeOut();
|
||
|
jQuery(".tw-metaboxes #subtitle").fadeOut();
|
||
|
jQuery(".tw-metaboxes #bg_image").fadeOut();
|
||
|
} else {
|
||
|
jQuery(".tw-metaboxes #googlemap").fadeOut();
|
||
|
jQuery(".tw-metaboxes #slider_id").fadeOut();
|
||
|
jQuery(".tw-metaboxes #subtitle").fadeOut();
|
||
|
jQuery(".tw-metaboxes #bg_image").fadeOut();
|
||
|
}
|
||
|
});
|
||
|
jQuery("#header_type select").change();
|
||
|
|
||
|
|
||
|
/* Page layout options */
|
||
|
jQuery(".tw-metaboxes .type_layout a").each(function(){
|
||
|
$val = jQuery(".tw-metaboxes .type_layout input").val();
|
||
|
$this = jQuery(this);
|
||
|
if( $this.data("value") == $val ){
|
||
|
$this.addClass("active");
|
||
|
}
|
||
|
});
|
||
|
jQuery(".tw-metaboxes .type_layout a").click(function(){
|
||
|
jQuery(".tw-metaboxes .type_layout a").removeClass("active");
|
||
|
$val = jQuery(this).data('value');
|
||
|
jQuery(".tw-metaboxes .type_layout input").val($val);
|
||
|
jQuery(this).addClass("active");
|
||
|
})
|
||
|
|
||
|
|
||
|
|
||
|
/* Post format */
|
||
|
showHidePostFormatField();
|
||
|
jQuery('#post-formats-select input').change(showHidePostFormatField);
|
||
|
|
||
|
|
||
|
/* Gallery */
|
||
|
|
||
|
var frame;
|
||
|
var images = script_data.image_ids;
|
||
|
var selection = loadImages(images);
|
||
|
|
||
|
jQuery('#gallery_images_upload').on('click', function(e) {
|
||
|
e.preventDefault();
|
||
|
|
||
|
// Set options for 1st frame render
|
||
|
var options = {
|
||
|
title: script_data.label_create,
|
||
|
state: 'gallery-edit',
|
||
|
frame: 'post',
|
||
|
selection: selection
|
||
|
};
|
||
|
|
||
|
// Check if frame or gallery already exist
|
||
|
if( frame || selection ) {
|
||
|
options['title'] = script_data.label_edit;
|
||
|
}
|
||
|
|
||
|
frame = wp.media(options).open();
|
||
|
|
||
|
// Tweak views
|
||
|
frame.menu.get('view').unset('cancel');
|
||
|
frame.menu.get('view').unset('separateCancel');
|
||
|
frame.menu.get('view').get('gallery-edit').el.innerHTML = script_data.label_edit;
|
||
|
frame.content.get('view').sidebar.unset('gallery'); // Hide Gallery Settings in sidebar
|
||
|
|
||
|
// When we are editing a gallery
|
||
|
overrideGalleryInsert();
|
||
|
frame.on( 'toolbar:render:gallery-edit', function() {
|
||
|
overrideGalleryInsert();
|
||
|
});
|
||
|
|
||
|
frame.on( 'content:render:browse', function( browser ) {
|
||
|
if ( !browser ) return;
|
||
|
// Hide Gallery Setting in sidebar
|
||
|
browser.sidebar.on('ready', function(){
|
||
|
browser.sidebar.unset('gallery');
|
||
|
});
|
||
|
// Hide filter/search as they don't work
|
||
|
browser.toolbar.on('ready', function(){
|
||
|
if(browser.toolbar.controller._state == 'gallery-library'){
|
||
|
browser.toolbar.$el.hide();
|
||
|
}
|
||
|
});
|
||
|
});
|
||
|
|
||
|
// All images removed
|
||
|
frame.state().get('library').on( 'remove', function() {
|
||
|
var models = frame.state().get('library');
|
||
|
if(models.length == 0){
|
||
|
selection = false;
|
||
|
jQuery.post(ajaxurl, {
|
||
|
ids: '',
|
||
|
action: 'themewaves_save_images',
|
||
|
post_id: script_data.post_id,
|
||
|
nonce: script_data.nonce
|
||
|
});
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// Override insert button
|
||
|
function overrideGalleryInsert() {
|
||
|
frame.toolbar.get('view').set({
|
||
|
insert: {
|
||
|
style: 'primary',
|
||
|
text: script_data.label_save,
|
||
|
|
||
|
click: function() {
|
||
|
var models = frame.state().get('library'),
|
||
|
ids = '';
|
||
|
|
||
|
models.each( function( attachment ) {
|
||
|
ids += attachment.id + ','
|
||
|
});
|
||
|
|
||
|
this.el.innerHTML = script_data.label_saving;
|
||
|
|
||
|
jQuery.ajax({
|
||
|
type: 'POST',
|
||
|
url: ajaxurl,
|
||
|
data: {
|
||
|
ids: ids,
|
||
|
action: 'themewaves_save_images',
|
||
|
post_id: script_data.post_id,
|
||
|
nonce: script_data.nonce
|
||
|
},
|
||
|
success: function(){
|
||
|
selection = loadImages(ids);
|
||
|
jQuery('#gallery_image_ids').val( ids );
|
||
|
frame.close();
|
||
|
},
|
||
|
dataType: 'html'
|
||
|
}).done( function( data ) {
|
||
|
jQuery('.gallery-thumbs').html( data );
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// Load images
|
||
|
function loadImages(images) {
|
||
|
if( images ){
|
||
|
var shortcode = new wp.shortcode({
|
||
|
tag: 'gallery',
|
||
|
attrs: { ids: images },
|
||
|
type: 'single'
|
||
|
});
|
||
|
|
||
|
var attachments = wp.media.gallery.attachments( shortcode );
|
||
|
|
||
|
var selection = new wp.media.model.Selection( attachments.models, {
|
||
|
props: attachments.props.toJSON(),
|
||
|
multiple: true
|
||
|
});
|
||
|
|
||
|
selection.gallery = attachments.gallery;
|
||
|
|
||
|
// Fetch the query's attachments, and then break ties from the
|
||
|
// query to allow for sorting.
|
||
|
selection.more().done( function() {
|
||
|
// Break ties with the query.
|
||
|
selection.props.set({ query: false });
|
||
|
selection.unmirror();
|
||
|
selection.props.unset('orderby');
|
||
|
});
|
||
|
|
||
|
return selection;
|
||
|
}
|
||
|
return false;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
function browseimage(id){
|
||
|
var elementId = id;
|
||
|
window.original_send_to_editor = window.send_to_editor;
|
||
|
window.custom_editor = true;
|
||
|
window.send_to_editor = function(html){
|
||
|
if (elementId != undefined) {
|
||
|
jQuery(html).find('img').each(function(){
|
||
|
var imgurl = jQuery(this).attr('src');
|
||
|
jQuery('input[name="'+elementId+'"]').val(imgurl);
|
||
|
return;
|
||
|
});
|
||
|
} else {
|
||
|
window.original_send_to_editor(html);
|
||
|
}
|
||
|
elementId = undefined;
|
||
|
};
|
||
|
wp.media.editor.open();
|
||
|
}
|
||
|
|
||
|
window.original_send_to_editor = window.send_to_editor;
|
||
|
window.custom_editor = true;
|