summaryrefslogtreecommitdiffstatshomepage
path: root/src/wp-admin/js/custom-header.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/wp-admin/js/custom-header.js')
-rw-r--r--src/wp-admin/js/custom-header.js60
1 files changed, 60 insertions, 0 deletions
diff --git a/src/wp-admin/js/custom-header.js b/src/wp-admin/js/custom-header.js
new file mode 100644
index 0000000000..d93ac3895c
--- /dev/null
+++ b/src/wp-admin/js/custom-header.js
@@ -0,0 +1,60 @@
+(function($) {
+ var frame;
+
+ $( function() {
+ // Fetch available headers and apply jQuery.masonry
+ // once the images have loaded.
+ var $headers = $('.available-headers');
+
+ $headers.imagesLoaded( function() {
+ $headers.masonry({
+ itemSelector: '.default-header',
+ isRTL: !! ( 'undefined' != typeof isRtl && isRtl )
+ });
+ });
+
+ // Build the choose from library frame.
+ $('#choose-from-library-link').click( function( event ) {
+ var $el = $(this);
+ event.preventDefault();
+
+ // If the media frame already exists, reopen it.
+ if ( frame ) {
+ frame.open();
+ return;
+ }
+
+ // Create the media frame.
+ frame = wp.media.frames.customHeader = wp.media({
+ // Set the title of the modal.
+ title: $el.data('choose'),
+
+ // Tell the modal to show only images.
+ library: {
+ type: 'image'
+ },
+
+ // Customize the submit button.
+ button: {
+ // Set the text of the button.
+ text: $el.data('update'),
+ // Tell the button not to close the modal, since we're
+ // going to refresh the page when the image is selected.
+ close: false
+ }
+ });
+
+ // When an image is selected, run a callback.
+ frame.on( 'select', function() {
+ // Grab the selected attachment.
+ var attachment = frame.state().get('selection').first(),
+ link = $el.data('updateLink');
+
+ // Tell the browser to navigate to the crop step.
+ window.location = link + '&file=' + attachment.id;
+ });
+
+ frame.open();
+ });
+ });
+}(jQuery));