PluginProbe
Friends / 4.3.2
Friends v4.3.2
4.3.2 4.3.1 4.3.0 4.2.2 4.2.1 4.2.0 4.1.0 2.7.4 2.7.5 2.7.6 2.7.7 2.7.8 2.7.9 2.8.0 2.8.1 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.8 2.8.9 2.9.0 2.9.1 All 88 releases
friends / friends-default-theme.js

friends-default-theme.js in Friends 4.3.2, at friends-default-theme.js

64 lines 2.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /**
2 * Default theme: collapse/expand behavior for the Friends page.
3 *
4 * Individual items can be collapsed/expanded by clicking.
5 * The compact mode toggle switches all items at once.
6 * Double-click with meta/shift/cmd toggles all.
7 */
8 ( function( $ ) {
9 var $document = $( document );
10
11 $document.on( 'click', 'a.collapse-post, .collapsed.card, .all-collapsed .card:not(.uncollapsed)', function ( e ) {
12 if ( e.target.closest( '.friends-dropdown' ) || e.target.closest( 'a:not(.collapse-post)' ) || e.target.closest( 'form' ) || e.target.closest( 'textarea' ) || e.target.closest( 'input' ) || e.target.closest( 'button' ) || e.target.closest( 'label' ) ) {
13 return true;
14 }
15
16 const card = $( this ).closest( 'article' );
17 let collapsed;
18 if ( card.closest( 'section.all-collapsed' ).length ) {
19 card.toggleClass( 'uncollapsed' );
20 collapsed = ! card.is( '.uncollapsed' );
21 } else {
22 card.toggleClass( 'collapsed' );
23 collapsed = card.is( '.collapsed' );
24 }
25 if ( collapsed ) {
26 $( this )
27 .find( 'i.dashicons-fullscreen-exit-alt' )
28 .removeClass( 'dashicons-fullscreen-exit-alt' )
29 .addClass( 'dashicons-fullscreen-alt' );
30 } else {
31 $( this )
32 .find( 'i.dashicons-fullscreen-alt' )
33 .removeClass( 'dashicons-fullscreen-alt' )
34 .addClass( 'dashicons-fullscreen-exit-alt' );
35 }
36
37 return false;
38 } );
39
40 $document.on( 'click', 'a.toggle-compact', function () {
41 // Collapse-toggle all visible.
42 $( 'section.posts' ).toggleClass( 'all-collapsed' );
43 if ( $( 'section.posts' ).is( '.all-collapsed' ) ) {
44 $( 'a.toggle-compact').text( friends.text_expanded_mode );
45 } else {
46 $( 'a.toggle-compact').text( friends.text_compact_mode );
47 }
48 $( window ).trigger( 'scroll' );
49 return false;
50 } );
51
52 $document.on(
53 'dblclick',
54 'section.all-collapsed article, article.collapsed, article.uncollapsed',
55 function ( e ) {
56 if ( e.target.closest( 'form' ) || e.target.closest( 'textarea' ) || e.target.closest( 'input' ) || e.target.closest( 'button' ) || e.target.closest( 'label' ) ) {
57 return true;
58 }
59 $( this ).closest( 'article' ).find( 'a.collapse-post' ).trigger( 'click' );
60 return false;
61 }
62 );
63 } )( jQuery );
64