PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 16.1
Jetpack – WP Security, Backup, Speed, & Growth v16.1
16.2-a.3 16.1.2 16.2-a.1 16.1.1 16.1 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 2 weeks ago build 3 weeks ago fonts 2 years ago genericons 6 months ago lib 2 weeks ago accessible-focus.js 6 years ago blogging-prompts.php 2 months ago class.jetpack-provision.php 8 months ago content-guidelines-ai.js 1 month ago content-guidelines-ai.php 1 month ago crowdsignal-shortcode.js 1 year ago crowdsignal-survey.js 6 years ago deprecate.js 9 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 3 weeks ago jetpack-modules.models.js 3 weeks ago jetpack-modules.views.js 3 weeks ago polldaddy-shortcode.js 1 month ago site-switcher-endpoint.php 7 months ago site-switcher.jsx 1 month ago site-switcher.php 6 months ago social-logos.php 5 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