| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- 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 );
|