This repository has been archived on 2023-08-16. You can view files and clone it, but cannot push or open issues or pull requests.
Omphaloskepsis/plugins/jetpack/_inc/jetpack-modules.views.js
2018-03-21 18:19:20 +00:00

63 lines
1.7 KiB
JavaScript

this.jetpackModules = this.jetpackModules || {};
window.jetpackModules.views = (function( window, $, _, Backbone, wp ) {
'use strict';
var views = {};
views.List_Table = Backbone.View.extend({
template : wp.template( 'Jetpack_Modules_List_Table_Template' ),
/**
* If we can, use replaceState to change the URL and indicate the new filtering.
* This will be handy with redirecting back to the same state after activating/deactivating.
*/
updateUrl : function() {
if ( ! window.history.replaceState ) {
return;
}
var url = window.location.href.split('?')[0] + '?page=jetpack_modules',
m_tag = $('.subsubsub .current'),
m_filter = $('.button-group.filter-active .active'),
m_sort = $('.button-group.sort .active'),
m_search = $('#srch-term-search-input').val();
if ( m_search.length ) {
url += '&s=' + encodeURIComponent( m_search );
}
if ( ! m_tag.hasClass('all') ) {
url += '&module_tag=' + encodeURIComponent( m_tag.data('title') );
}
if ( m_filter.data('filter-by') ) {
url += '&' + encodeURIComponent( m_filter.data('filter-by') ) + '=' + encodeURIComponent( m_filter.data('filter-value') );
}
if ( 'name' !== m_sort.data('sort-by') ) {
url += '&sort_by=' + encodeURIComponent( m_sort.data('sort-by') );
}
window.history.replaceState( {}, '', url );
},
render : function() {
this.model.filter_and_sort();
this.$el.html( this.template( this.model.attributes ) );
this.updateUrl();
return this;
},
initialize : function() {
this.listenTo( this.model, 'change', this.render );
}
});
return views;
})( this, jQuery, _, Backbone, wp );