wp/wp-admin/js/custom-background.js
author ymh <ymh.work@gmail.com>
Tue, 09 Jun 2015 03:35:32 +0200
changeset 5 5e2f62d02dcd
parent 0 d970ebf37754
child 7 cf61fcea0001
permissions -rw-r--r--
upgrade wordpress + plugins
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
     1
/* global ajaxurl */
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
(function($) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
	$(document).ready(function() {
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
     4
		var frame,
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
     5
			bgImage = $( '#custom-background-image' );
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
		$('#background-color').wpColorPicker({
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
			change: function( event, ui ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
				bgImage.css('background-color', ui.color.toString());
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
			},
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
			clear: function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
				bgImage.css('background-color', '');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
		});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
		$('input[name="background-position-x"]').change(function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
			bgImage.css('background-position', $(this).val() + ' top');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
		});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
		$('input[name="background-repeat"]').change(function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
			bgImage.css('background-repeat', $(this).val());
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
		});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
		$('#choose-from-library-link').click( function( event ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
			var $el = $(this);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
			event.preventDefault();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
			// If the media frame already exists, reopen it.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
			if ( frame ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
				frame.open();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
				return;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
			// Create the media frame.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
			frame = wp.media.frames.customBackground = wp.media({
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
				// Set the title of the modal.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
				title: $el.data('choose'),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
				// Tell the modal to show only images.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
				library: {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
					type: 'image'
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
				},
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
				// Customize the submit button.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
				button: {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
					// Set the text of the button.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
					text: $el.data('update'),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
					// Tell the button not to close the modal, since we're
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
					// going to refresh the page when the image is selected.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
					close: false
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
				}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
			});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
			// When an image is selected, run a callback.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
			frame.on( 'select', function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
				// Grab the selected attachment.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
				var attachment = frame.state().get('selection').first();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
				// Run an AJAX request to set the background image.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
				$.post( ajaxurl, {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
					action: 'set-background-image',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
					attachment_id: attachment.id,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
					size: 'full'
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
				}).done( function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
					// When the request completes, reload the window.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
					window.location.reload();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
				});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
			});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    71
			// Finally, open the modal.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
			frame.open();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
		});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
	});
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
    75
})(jQuery);