PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 16.1-beta.2
Jetpack – WP Security, Backup, Speed, & Growth v16.1-beta.2
16.1-beta 16.1-beta.2 16.1-beta.3 16.1-a.5 16.1-a.3 16.0.1 16.1-a.1 16.0 16.0-beta 16.0-a.7 16.0-a.5 15.9.1 16.0-a.3 16.0-a.1 15.9 15.9-beta 15.9-a.7 15.9-a.5 15.9-a.3 15.9-a.1 15.8 15.8-beta 15.8-a.7 15.8-a.5 5.2.5 5.3.4 5.4.4 5.5.5 5.6.5 5.7.5 5.8.4 5.9.4 6.0.4 6.1 6.1.1 6.1.2 6.1.3 6.1.4 6.1.5 6.2 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.3 6.3.1 6.3.2 6.3.3 6.3.4 6.3.5 6.3.6 6.3.7 6.4 6.4.1 6.4.2 6.4.3 6.4.4 6.4.5 6.4.6 6.5 6.5.1 6.5.2 6.5.3 6.5.4 6.6 6.6.1 6.6.2 6.6.3 6.6.4 6.6.5 6.7 6.7.1 6.7.2 6.7.3 6.7.4 6.8 6.8.1 6.8.2 6.8.3 6.8.4 6.8.5 6.9 6.9.1 6.9.2 6.9.3 6.9.4 7.0 7.0.1 7.0.2 7.0.3 7.0.4 7.0.5 7.1 7.1.1 7.1.2 7.1.3 7.1.4 7.1.5 7.2 7.2.1 7.2.1.1 7.2.2 7.2.3 7.2.4 7.2.5 7.3 7.3.0.1 7.3.1 7.3.1.1 7.3.2 7.3.3 7.3.4 7.3.5 7.4 7.4.1 7.4.2 7.4.3 7.4.4 7.4.5 7.5 7.5.0.1 7.5.1 7.5.2 7.5.3 7.5.4 7.5.5 7.5.6 7.5.7 7.6 7.6.1 7.6.2 7.6.3 7.6.4 7.7 7.7.1 7.7.2 7.7.3 7.7.4 7.7.5 7.7.6 7.8 7.8.1 7.8.2 7.8.3 7.8.4 7.9 7.9.1 7.9.2 7.9.3 7.9.4 8.0 8.0.1 8.0.2 8.0.3 8.1 8.1.1 8.1.2 8.1.3 8.1.4 8.2 8.2.0.1 8.2.1 8.2.2 8.2.3 8.2.4 8.2.5 8.2.6 8.3 8.3.1 8.3.2 8.3.3 8.4 8.4.1 8.4.2 8.4.3 8.4.4 8.4.5 8.5 8.5.1 8.5.2 8.5.3 8.6 8.6.1 8.6.2 8.6.3 8.6.4 8.7 8.7.0.1 8.7.1 8.7.2 8.7.3 8.7.4 8.8 8.8.1 8.8.2 8.8.3 8.8.4 8.8.5 8.9 8.9.1 8.9.2 8.9.3 8.9.4 9.0 9.0.1 9.0.2 9.0.3 9.0.4 9.0.5 9.1 9.1.1 9.1.2 9.1.3 9.2 9.2.1 9.2.2 9.2.3 9.2.4 9.3 9.3.1 9.3.2 9.3.3 9.3.4 9.3.5 9.4 9.4.1 9.4.2 9.4.3 9.4.4 9.5 9.5.1 9.5.2 9.5.3 9.5.4 9.5.5 9.6 9.6.1 9.6.2 9.6.3 9.6.4 9.7 9.7.1 9.7.2 15.7-beta.2 9.7.3 15.7.1 9.8 15.8-a.1 9.8.1 15.8-a.3 9.8.2 2.0.9 9.8.3 2.1.7 9.9 2.2.10 9.9.1 2.3.10 9.9.2 2.4.7 9.9.3 2.5.5 2.6.6 2.7.5 2.8.5 2.9.6 3.0.6 3.1.5 3.2.5 3.3.6 3.4.6 3.5.6 3.6.4 3.7.5 3.8.5 3.9.10 4.0.7 4.1.4 4.2.5 4.3.5 4.4.5 4.5.3 4.6.3 4.7.4 4.8.5 4.9.3 5.0.3 5.1.4 trunk 10.0 10.0.1 10.0.2 10.1 10.1.1 10.1.2 10.2 10.2.1 10.2.2 10.2.3 10.3 10.3.1 10.3.2 10.4 10.4.1 10.4.2 10.5 10.5.1 10.5.2 10.5.3 10.6 10.6.1 10.6.2 10.7 10.7.1 10.7.2 10.8 10.8.1 10.8.2 10.9 10.9.1 10.9.2 10.9.3 11.0 11.0.1 11.0.2 11.1 11.1.1 11.1.2 11.1.3 11.1.4 11.2 11.2.1 11.2.2 11.3 11.3.1 11.3.2 11.3.3 11.3.4 11.4 11.4.1 11.4.2 11.5 11.5.1 11.5.2 11.5.3 11.6 11.6.1 11.6.2 11.7 11.7.1 11.7.2 11.7.3 11.8 11.8.3 11.8.4 11.8.5 11.8.6 11.9 11.9.1 11.9.2 11.9.3 12.0 12.0.1 12.0.2 12.1 12.1.1 12.1.2 12.2 12.2.1 12.2.2 12.3 12.3.1 12.4 12.4.1 12.5 12.5.1 12.6 12.6.1 12.6.2 12.6.3 12.7 12.7.1 12.7.2 12.8 12.8.1 12.8.2 12.9 12.9.1 12.9.2 12.9.3 12.9.4 13.0 13.0.1 13.1 13.1.1 13.1.2 13.1.3 13.1.4 13.2 13.2.1 13.2.2 13.2.3 13.3 13.3.1 13.3.2 13.4 13.4.1 13.4.2 13.4.3 13.4.4 13.5 13.5.1 13.6 13.6.1 13.7 13.7.1 13.8 13.8.1 13.8.2 13.9 13.9.1 14.0 14.1 14.2 14.2.1 14.3 14.4 14.4.1 14.5 14.6 14.7 14.8 14.9 14.9.1 15.0 15.0.1 15.0.2 15.1 15.1.1 15.2 15.3 15.3.1 15.4 15.5 15.6 15.7 15.7-a.1 15.7-a.3 15.7-a.5 15.7-a.7 15.7-beta
jetpack / _inc / jetpack-modules.views.js
jetpack / _inc Last commit date
blocks 5 days ago build 5 days ago fonts 1 year ago genericons 5 months ago lib 5 days ago accessible-focus.js 6 years ago blogging-prompts.php 1 month ago class.jetpack-provision.php 8 months ago content-guidelines-ai.js 2 weeks ago content-guidelines-ai.php 1 week ago crowdsignal-shortcode.js 1 year ago crowdsignal-survey.js 6 years ago deprecate.js 8 months ago facebook-embed.js 4 years ago gallery-settings.js 6 years ago genericons.php 1 year ago jetpack-admin.js 3 years ago jetpack-deactivate-dialog.js 1 year ago jetpack-modules.js 5 days ago jetpack-modules.models.js 5 days ago jetpack-modules.views.js 5 days ago polldaddy-shortcode.js 3 weeks ago site-switcher-endpoint.php 6 months ago site-switcher.jsx 2 weeks ago site-switcher.php 6 months ago social-logos.php 4 months ago twitter-timeline.js 2 months ago
jetpack-modules.views.js
105 lines
1 window.jetpackModules = window.jetpackModules || {};
2
3 window.jetpackModules.views = ( function ( window, $, Backbone, wp ) {
4 'use strict';
5
6 var views = {};
7
8 views.List_Table = Backbone.View.extend( {
9 template: wp.template( 'Jetpack_Modules_List_Table_Template' ),
10
11 /**
12 * If we can, use replaceState to change the URL and indicate the new filtering.
13 * This will be handy with redirecting back to the same state after activating/deactivating.
14 */
15 updateUrl: function () {
16 if ( ! window.history.replaceState ) {
17 return;
18 }
19
20 var url = window.location.href.split( '?' )[ 0 ] + '?page=jetpack_modules',
21 m_tag = $( '.subsubsub .current' ),
22 m_purpose = $( '.purpose-filter .current' ),
23 m_availability = $( '.button-group.availability-filter .active' ),
24 m_search = $( '#srch-term-search-input' ).val();
25
26 if ( m_search.length ) {
27 url += '&s=' + encodeURIComponent( m_search );
28 }
29
30 // "Hide unavailable" is the default in Offline Mode, so only the opt-out
31 // ("All") needs to be persisted in the URL.
32 if ( 'all' === m_availability.data( 'availability' ) ) {
33 url += '&offline_available=all';
34 }
35
36 if ( ! m_tag.hasClass( 'all' ) ) {
37 url += '&module_tag=' + encodeURIComponent( m_tag.find( 'a' ).data( 'title' ) );
38 }
39
40 if ( m_purpose.length && ! m_purpose.hasClass( 'all' ) ) {
41 url += '&product_group=' + encodeURIComponent( m_purpose.find( 'a' ).data( 'group' ) );
42 }
43
44 // State facet (segmented buttons). "All" carries no data-filter-by.
45 $( '.button-group.module-filter .active' ).each( function () {
46 var by = $( this ).data( 'filter-by' ),
47 value = $( this ).data( 'filter-value' );
48
49 if ( by ) {
50 url += '&' + encodeURIComponent( by ) + '=' + encodeURIComponent( value );
51 }
52 } );
53
54 window.history.replaceState( {}, '', url );
55 },
56
57 /**
58 * Writes faceted counts into a facet list (the tag list or the Purpose
59 * list), and greys out entries that have no matches under the current
60 * filters. The "All" entry always shows the total and is never disabled.
61 *
62 * @param {string} selector Facet list selector (e.g. '.subsubsub').
63 * @param {Object} counts Map of key to count, plus `__all__`.
64 * @param {string} dataKey data-* attribute on each link holding its key.
65 */
66 updateFacetCounts: function ( selector, counts, dataKey ) {
67 $( selector + ' > li' ).each( function () {
68 var $li = $( this ),
69 isAll = $li.hasClass( 'all' ),
70 key = $li.children( 'a' ).data( dataKey ),
71 n = isAll ? counts.__all__ : counts[ key ] || 0;
72
73 $li.find( '.count' ).text( '(' + n + ')' );
74
75 if ( ! isAll ) {
76 $li.toggleClass( 'is-empty', 0 === n );
77 }
78 } );
79 },
80
81 /**
82 * Refreshes both facet lists ("Show" tags and "Purpose") so their counts
83 * reflect the currently-active filters.
84 */
85 updateCounts: function () {
86 this.updateFacetCounts( '.subsubsub', this.model.tag_counts(), 'title' );
87 this.updateFacetCounts( '.purpose-filter', this.model.purpose_counts(), 'group' );
88 },
89
90 render: function () {
91 this.model.filter_and_sort();
92 this.$el.html( this.template( this.model.attributes ) );
93 this.updateCounts();
94 this.updateUrl();
95 return this;
96 },
97
98 initialize: function () {
99 this.listenTo( this.model, 'change', this.render );
100 },
101 } );
102
103 return views;
104 } )( window, jQuery, Backbone, wp );
105