PluginProbe ʕ •ᴥ•ʔ
Responsive Lightbox & Gallery / 2.1
Responsive Lightbox & Gallery v2.1
2.7.8 trunk 1.0.0 1.0.1 1.0.1.1 1.0.2 1.0.3 1.0.4 1.1.0 1.1.1 1.1.2 1.2.0 1.2.1 1.2.2 1.2.3 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.4.0 1.4.0.1 1.4.1 1.4.11 1.4.12 1.4.13 1.4.14 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.9 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.6.0 1.6.1 1.6.10 1.6.11 1.6.12 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 2.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.1 2.2.0 2.2.1 2.2.2 2.2.3 2.2.3.1 2.3.0 2.3.1 2.3.2 2.3.3 2.3.4 2.3.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.4.8 2.4.9 2.5.0 2.5.1 2.5.2 2.5.3 2.5.4 2.5.5 2.6.0 2.6.1 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7
responsive-lightbox / js / admin-post.js
responsive-lightbox / js Last commit date
admin-folders.js 7 years ago admin-galleries.js 7 years ago admin-post.js 7 years ago admin-widgets.js 7 years ago admin.js 7 years ago front-basicmasonry.js 7 years ago front-basicslider.js 7 years ago front.js 7 years ago
admin-post.js
231 lines
1 ( function ( $ ) {
2
3 $( document ).on( 'ready', function () {
4 var modal = $( '#rl-modal-gallery' ),
5 load_delayed_galleries = _.debounce( get_galleries, 500 ),
6 last_checked_gallery = 0
7 galleries = {};
8
9 // search galleries
10 $( '#rl-media-search-input' ).on( 'keyup', function () {
11 load_delayed_galleries( modal, $( this ).val() );
12 } );
13
14 // reload galleries in modal
15 modal.on( 'click', '.rl-reload-galleries', function ( e ) {
16 e.preventDefault();
17
18 // reset galleries
19 galleries = {};
20
21 // load galleries
22 get_galleries( modal, $( '#rl-media-search-input' ).val() );
23 } );
24
25 // select category
26 modal.on( 'change', '#rl-media-attachment-categories', function() {
27 $( '.rl-reload-galleries' ).click();
28 } );
29
30 // close gallery modal
31 modal.on( 'click', '.media-modal-close, .media-modal-backdrop, .rl-media-button-cancel-gallery', function ( e ) {
32 e.preventDefault();
33
34 modal.hide();
35 } );
36
37 // select gallery in modal
38 modal.on( 'click', '.rl-galleries-list li .js--select-attachment, .rl-galleries-list li button', function ( e ) {
39 e.preventDefault();
40
41 var gallery = $( this ).closest( 'li' ),
42 current_checked_gallery = parseInt( gallery.data( 'id' ) );
43
44 if ( last_checked_gallery !== current_checked_gallery ) {
45 gallery.parent().find( 'li' ).removeClass( 'selected details' );
46
47 last_checked_gallery = current_checked_gallery;
48
49 gallery.addClass( 'selected details' );
50
51 select_gallery( modal, current_checked_gallery, false );
52 } else {
53 if ( gallery.hasClass( 'selected details' ) ) {
54 gallery.removeClass( 'selected details' );
55
56 select_gallery( modal, current_checked_gallery, true );
57 } else {
58 gallery.addClass( 'selected details' );
59
60 select_gallery( modal, current_checked_gallery, false );
61 }
62 }
63 } );
64
65 // insert gallery shortcode handler
66 modal.on( 'click', '.rl-media-button-insert-gallery', function ( e ) {
67 e.preventDefault();
68
69 if ( $( this ).attr( 'disabled' ) ) {
70 return;
71 }
72
73 var shortcode = '[rl_gallery id="' + last_checked_gallery + '"]';
74 editor = tinyMCE.get( 'content' );
75
76 if ( editor ) {
77 editor.execCommand( 'mceInsertContent', false, shortcode );
78 } else {
79 wp.media.editor.insert( shortcode );
80 }
81
82 modal.hide();
83 });
84
85 // add gallery button handler
86 $( document ).on( 'click', '#rl-insert-modal-gallery-button', function ( e ) {
87 e.preventDefault();
88
89 modal.show();
90
91 set_columns( modal );
92
93 get_galleries( modal, $( '#rl-media-search-input' ).val() );
94 } );
95
96 $( window ).on( 'resize', function () {
97 set_columns( modal );
98 } );
99 } );
100
101 // set number of columns
102 function set_columns( element ) {
103 var list = element.find( '.rl-galleries-list' ),
104 list_width = list.width(),
105 content = element.find( '.media-frame-content' ),
106 columns = parseInt( content.attr( 'data-columns' ) ),
107 old_columns = new_columns = columns;
108
109 if ( list_width ) {
110 var width = element.find( '.media-sidebar' ).outerWidth() + 'px';
111
112 list.css( 'right', width );
113 element.find( '.attachments-browser .media-toolbar' ).css( 'right', width );
114 new_columns = Math.min( Math.round( list_width / 170 ), 12 ) || 1;
115
116 if ( ! old_columns || old_columns !== new_columns ) {
117 content.attr( 'data-columns', new_columns );
118 }
119 }
120 };
121
122 // update gallery preview
123 function update_gallery_preview( element, gallery, animate ) {
124 // update gallery attachments
125 element.find( '.rl-attachments-list' ).append( gallery.attachments ).fadeOut( 0 ).delay( animate? 'fast' : 0 ).fadeIn( 0 );
126
127 // update number of images in gallery
128 element.find( '.rl-gallery-count' ).text( gallery.count );
129
130 // update gallery edit link
131 if ( gallery.edit_url !== '' )
132 element.find( '.rl-edit-gallery-link' ).removeClass( 'hidden' ).attr( 'href', gallery.edit_url );
133 else
134 element.find( '.rl-edit-gallery-link' ).addClass( 'hidden' ).attr( 'href', '' );
135 }
136
137 // select gallery
138 function select_gallery( element, gallery_id, toggle ) {
139 element.find( '.media-selection' ).toggleClass( 'empty', toggle );
140 element.find( '.rl-media-button-insert-gallery' ).prop( 'disabled', toggle );
141
142 // load gallery preview images?
143 if ( ! toggle ) {
144 // clear images
145 element.find( '.rl-attachments-list' ).empty();
146
147 // load cached images
148 if ( typeof galleries[gallery_id] !== 'undefined' ) {
149 // update images
150 update_gallery_preview( element, galleries[gallery_id], false );
151 // get images for the first time
152 } else {
153 var spinner = element.find( '.rl-gallery-images-spinner' ),
154 info = element.find( '.selection-info' );
155
156 // display spinner
157 spinner.fadeIn( 'fast' ).css( 'visibility', 'visible' );
158
159 // turn off info
160 info.addClass( 'rl-loading-content' );
161
162 $.post( ajaxurl, {
163 action: 'rl-post-gallery-preview',
164 post_id: rlArgs.post_id,
165 gallery_id: gallery_id,
166 nonce: rlArgs.nonce
167 } ).done( function ( response ) {
168 try {
169 if ( response.success ) {
170 // store gallery data
171 galleries[gallery_id] = response.data;
172
173 // update gallery data
174 update_gallery_preview( element, galleries[gallery_id], true );
175 } else {
176 //@TODO
177 }
178 } catch( e ) {
179 //@TODO
180 }
181 } ).always( function () {
182 // hide spinner
183 spinner.fadeOut( 'fast' );
184
185 // turn on info
186 info.removeClass( 'rl-loading-content' );
187 } );
188 }
189 }
190 }
191
192 // get galleries
193 function get_galleries( element, search = '' ) {
194 var spinner = $( '.rl-gallery-reload-spinner' );
195
196 // clear galleries
197 element.find( '.rl-galleries-list' ).empty();
198
199 // hide gallery info
200 element.find( '.media-selection' ).addClass( 'empty' );
201
202 // clear images
203 element.find( '.rl-attachments-list' ).empty();
204
205 // display spinner
206 spinner.fadeIn( 'fast' );
207
208 // get galleries
209 $.post( ajaxurl, {
210 action: 'rl-post-get-galleries',
211 post_id: rlArgs.post_id,
212 search: search,
213 nonce: rlArgs.nonce,
214 category: element.find( '#rl-media-attachment-categories' ).val()
215 } ).done( function ( response ) {
216 try {
217 if ( response.success ) {
218 element.find( '.rl-galleries-list' ).empty().append( response.data );
219 } else {
220 //@TODO
221 }
222 } catch( e ) {
223 //@TODO
224 }
225 } ).always( function () {
226 // hide spinner
227 spinner.fadeOut( 'fast' );
228 } );
229 }
230
231 } )( jQuery );