Making WordPress.org

Changeset 3622


Ignore:
Timestamp:
07/04/2016 09:28:48 AM (8 years ago)
Author:
ocean90
Message:

Theme Directory: Update list of WordPress theme features.

Props grapplerulrich, rabmalin.
See [core37287].
Fixes #1187.

Location:
sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-themes
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-themes/functions.php

    r3149 r3622  
    166166/**
    167167 * This is a copy of get_theme_feature_list(), but with the wporg-themes text domain
    168  */
    169 function wporg_themes_get_feature_list() {
    170     return array(
    171         __( 'Colors', 'wporg-themes' )   => array(
    172             'black'  => __( 'Black',  'wporg-themes' ),
    173             'blue'   => __( 'Blue',   'wporg-themes' ),
    174             'brown'  => __( 'Brown',  'wporg-themes' ),
    175             'gray'   => __( 'Gray',   'wporg-themes' ),
    176             'green'  => __( 'Green',  'wporg-themes' ),
     168 *
     169 * @param string $include Optional. Type of list: 'active', 'deprecated' or 'all'. Default 'active'.
     170 * @return array List of features.
     171 */
     172function wporg_themes_get_feature_list( $include = 'active' ) {
     173    $features = array();
     174
     175    if ( 'active' === $include || 'all' === $include ) {
     176        $features = array(
     177            __( 'Layout', 'wporg-themes' )   => array(
     178                'grid-layout'   => __( 'Grid Layout', 'wporg-themes' ),
     179                'one-column'    => __( 'One Column', 'wporg-themes' ),
     180                'two-columns'   => __( 'Two Columns', 'wporg-themes' ),
     181                'three-columns' => __( 'Three Columns', 'wporg-themes' ),
     182                'four-columns'  => __( 'Four Columns', 'wporg-themes' ),
     183                'left-sidebar'  => __( 'Left Sidebar', 'wporg-themes' ),
     184                'right-sidebar' => __( 'Right Sidebar', 'wporg-themes' ),
     185            ),
     186            __( 'Features', 'wporg-themes' ) => array(
     187                'accessibility-ready'   => __( 'Accessibility Ready', 'wporg-themes' ),
     188                'buddypress'            => __( 'BuddyPress', 'wporg-themes' ),
     189                'custom-background'     => __( 'Custom Background', 'wporg-themes' ),
     190                'custom-colors'         => __( 'Custom Colors', 'wporg-themes' ),
     191                'custom-header'         => __( 'Custom Header', 'wporg-themes' ),
     192                'custom-logo'           => __( 'Custom Logo', 'wporg-themes' ),
     193                'custom-menu'           => __( 'Custom Menu', 'wporg-themes' ),
     194                'editor-style'          => __( 'Editor Style', 'wporg-themes' ),
     195                'featured-image-header' => __( 'Featured Image Header', 'wporg-themes' ),
     196                'featured-images'       => __( 'Featured Images', 'wporg-themes' ),
     197                'flexible-header'       => __( 'Flexible Header', 'wporg-themes' ),
     198                'footer-widgets'        => __( 'Footer Widgets', 'wporg-themes' ),
     199                'front-page-post-form'  => __( 'Front Page Posting', 'wporg-themes' ),
     200                'full-width-template'   => __( 'Full Width Template', 'wporg-themes' ),
     201                'microformats'          => __( 'Microformats', 'wporg-themes' ),
     202                'post-formats'          => __( 'Post Formats', 'wporg-themes' ),
     203                'rtl-language-support'  => __( 'RTL Language Support', 'wporg-themes' ),
     204                'sticky-post'           => __( 'Sticky Post', 'wporg-themes' ),
     205                'theme-options'         => __( 'Theme Options', 'wporg-themes' ),
     206                'threaded-comments'     => __( 'Threaded Comments', 'wporg-themes' ),
     207                'translation-ready'     => __( 'Translation Ready', 'wporg-themes' ),
     208            ),
     209            __( 'Subject', 'wporg-themes' )  => array(
     210                'blog'           => __( 'Blog', 'wporg-themes' ),
     211                'e-commerce'     => __( 'E-Commerce', 'wporg-themes' ),
     212                'education'      => __( 'Education', 'wporg-themes' ),
     213                'entertainment'  => __( 'Entertainment', 'wporg-themes' ),
     214                'food-and-drink' => __( 'Food & Drink', 'wporg-themes' ),
     215                'holiday'        => __( 'Holiday', 'wporg-themes' ),
     216                'news'           => __( 'News', 'wporg-themes' ),
     217                'photography'    => __( 'Photography', 'wporg-themes' ),
     218                'portfolio'      => __( 'Portfolio', 'wporg-themes' ),
     219            ),
     220        );
     221    }
     222
     223    if ( 'deprecated' === $include || 'all' === $include ) {
     224        $features[ __( 'Colors', 'wporg-themes' ) ] = array(
     225            'black'  => __( 'Black', 'wporg-themes' ),
     226            'blue'   => __( 'Blue', 'wporg-themes' ),
     227            'brown'  => __( 'Brown', 'wporg-themes' ),
     228            'gray'   => __( 'Gray', 'wporg-themes' ),
     229            'green'  => __( 'Green', 'wporg-themes' ),
    177230            'orange' => __( 'Orange', 'wporg-themes' ),
    178             'pink'   => __( 'Pink',   'wporg-themes' ),
     231            'pink'   => __( 'Pink', 'wporg-themes' ),
    179232            'purple' => __( 'Purple', 'wporg-themes' ),
    180             'red'    => __( 'Red',    'wporg-themes' ),
     233            'red'    => __( 'Red', 'wporg-themes' ),
    181234            'silver' => __( 'Silver', 'wporg-themes' ),
    182             'tan'    => __( 'Tan',    'wporg-themes' ),
    183             'white'  => __( 'White',  'wporg-themes' ),
     235            'tan'    => __( 'Tan', 'wporg-themes' ),
     236            'white'  => __( 'White', 'wporg-themes' ),
    184237            'yellow' => __( 'Yellow', 'wporg-themes' ),
    185             'dark'   => __( 'Dark',   'wporg-themes' ),
    186             'light'  => __( 'Light',  'wporg-themes' ),
    187         ),
    188         __( 'Layout', 'wporg-themes' ) => array(
    189             'fixed-layout'      => __( 'Fixed Layout',      'wporg-themes' ),
    190             'fluid-layout'      => __( 'Fluid Layout',      'wporg-themes' ),
     238            'dark'   => __( 'Dark', 'wporg-themes' ),
     239            'light'  => __( 'Light', 'wporg-themes' ),
     240        );
     241
     242        if ( 'deprecated' === $include ) {
     243            // Initialize arrays.
     244            $features[ __( 'Layout', 'wporg-themes' ) ]   = array();
     245            $features[ __( 'Features', 'wporg-themes' ) ] = array();
     246            $features[ __( 'Subject', 'wporg-themes' ) ]  = array();
     247        }
     248
     249        $features[ __( 'Layout', 'wporg-themes' ) ] = array_merge( $features[ __( 'Layout', 'wporg-themes' ) ], array(
     250            'fixed-layout'      => __( 'Fixed Layout', 'wporg-themes' ),
     251            'fluid-layout'      => __( 'Fluid Layout', 'wporg-themes' ),
    191252            'responsive-layout' => __( 'Responsive Layout', 'wporg-themes' ),
    192             'one-column'        => __( 'One Column',        'wporg-themes' ),
    193             'two-columns'       => __( 'Two Columns',       'wporg-themes' ),
    194             'three-columns'     => __( 'Three Columns',     'wporg-themes' ),
    195             'four-columns'      => __( 'Four Columns',      'wporg-themes' ),
    196             'left-sidebar'      => __( 'Left Sidebar',      'wporg-themes' ),
    197             'right-sidebar'     => __( 'Right Sidebar',     'wporg-themes' ),
    198         ),
    199         __( 'Features', 'wporg-themes' ) => array(
    200             'accessibility-ready'   => __( 'Accessibility Ready',   'wporg-themes' ),
    201             'blavatar'              => __( 'Blavatar',              'wporg-themes' ),
    202             'buddypress'            => __( 'BuddyPress',            'wporg-themes' ),
    203             'custom-background'     => __( 'Custom Background',     'wporg-themes' ),
    204             'custom-colors'         => __( 'Custom Colors',         'wporg-themes' ),
    205             'custom-header'         => __( 'Custom Header',         'wporg-themes' ),
    206             'custom-menu'           => __( 'Custom Menu',           'wporg-themes' ),
    207             'editor-style'          => __( 'Editor Style',          'wporg-themes' ),
    208             'featured-image-header' => __( 'Featured Image Header', 'wporg-themes' ),
    209             'featured-images'       => __( 'Featured Images',       'wporg-themes' ),
    210             'flexible-header'       => __( 'Flexible Header',       'wporg-themes' ),
    211             'front-page-post-form'  => __( 'Front Page Posting',    'wporg-themes' ),
    212             'full-width-template'   => __( 'Full Width Template',   'wporg-themes' ),
    213             'microformats'          => __( 'Microformats',          'wporg-themes' ),
    214             'post-formats'          => __( 'Post Formats',          'wporg-themes' ),
    215             'rtl-language-support'  => __( 'RTL Language Support',  'wporg-themes' ),
    216             'sticky-post'           => __( 'Sticky Post',           'wporg-themes' ),
    217             'theme-options'         => __( 'Theme Options',         'wporg-themes' ),
    218             'threaded-comments'     => __( 'Threaded Comments',     'wporg-themes' ),
    219             'translation-ready'     => __( 'Translation Ready',     'wporg-themes' ),
    220         ),
    221         __( 'Subject', 'wporg-themes' ) => array(
    222             'holiday'       => __( 'Holiday',       'wporg-themes' ),
     253        ) );
     254
     255        $features[ __( 'Features', 'wporg-themes' ) ] = array_merge( $features[ __( 'Features', 'wporg-themes' ) ], array(
     256            'blavatar' => __( 'Blavatar', 'wporg-themes' ),
     257        ) );
     258
     259        $features[ __( 'Subject', 'wporg-themes' ) ] = array_merge( $features[ __( 'Subject', 'wporg-themes' ) ], array(
    223260            'photoblogging' => __( 'Photoblogging', 'wporg-themes' ),
    224             'seasonal'      => __( 'Seasonal',      'wporg-themes' ),
    225         )
    226     );
     261            'seasonal'      => __( 'Seasonal', 'wporg-themes' ),
     262        ) );
     263    }
     264
     265    return $features;
    227266}
    228267
    229268/**
    230269 * Returns an array of [ tag_slug => translated_tag_name] tags for translation within JS
     270 *
     271 * @return array List of features.
    231272 */
    232273function wporg_themes_get_tag_translations() {
    233274    $translations = array();
    234     foreach ( wporg_themes_get_feature_list() as $group => $tags ) {
     275    foreach ( wporg_themes_get_feature_list( 'all' ) as $group => $tags ) {
    235276        $translations = array_merge( $translations, $tags );
    236277    }
  • sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-themes/js/theme.js

    r2539 r3622  
    14491449            }
    14501450
     1451            if ( ! tags ) {
     1452                return;
     1453            }
     1454
    14511455            $( 'body' ).addClass( 'filters-applied' );
    14521456            $( '.filter-links li > a.current' ).removeClass( 'current' );
  • sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-themes/js/theme.min.js

    r2539 r3622  
    1 window.wp=window.wp||{},function(a){var b,c=wp.themes=wp.themes||{};c.data=_wpThemeSettings,b=c.data.l10n,_.extend(c,{model:{},view:{},routes:{},router:{},template:wp.template}),c.utils={title:function(b){document.title=a("<div/>").html(c.data.settings.title.replace("%s",a("<div/>").text(b).html())).text()}},c.Model=Backbone.Model.extend({initialize:function(){var a;this.set({id:this.get("slug")||this.get("id")}),this.has("sections")&&(a=this.get("sections").description,this.set({description:a}))}}),c.view.Appearance=wp.Backbone.View.extend({el:"#themes .theme-browser",window:a(window),page:0,initialize:function(a){_.bindAll(this,"scroller"),this.SearchView=a.SearchView?a.SearchView:c.view.Search,this.window.bind("scroll",_.throttle(this.scroller,300))},render:function(){this.view=new c.view.Themes({collection:this.collection,parent:this}),this.search(),this.view.render(),this.$el.find(".themes").remove(),this.$el.append(this.view.el).addClass("rendered")},searchContainer:"",search:function(){var c,d=this;c=new this.SearchView({collection:d.collection,parent:this}),c.render(),this.searchContainer.append(a.parseHTML('<label class="screen-reader-text" for="wp-filter-search-input">'+b.search+"</label>")).append(c.el)},scroller:function(){var a,b,c=this;a=this.window.scrollTop()+c.window.height(),b=c.$el.offset().top+c.$el.outerHeight(!1)-c.window.height(),b=Math.round(.9*b),a>b&&this.trigger("theme:scroll")}}),c.Collection=Backbone.Collection.extend({model:c.Model,terms:"",queries:[],currentQuery:{page:1,request:{}},count:!1,loadingThemes:!1,doSearch:function(a){this.terms!==a&&(this.terms=a,this.terms.length>0&&this.search(this.terms),""===this.terms&&this.reset(c.data.themes),this.trigger("themes:update"))},search:function(b){var d,e,f,g,h,i;this.reset(c.data.themes,{silent:!0}),b=b.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"),b=b.replace(/ /g,")(?=.*"),d=new RegExp("^(?=.*"+b+").+","i"),e=this.filter(function(a){return g=a.get("name").replace(/(<([^>]+)>)/gi,""),h=a.get("description").replace(/(<([^>]+)>)/gi,""),i=a.get("author").replace(/(<([^>]+)>)/gi,""),f=_.union([g,a.get("id"),h,i,a.get("tags")]),d.test(a.get("author"))&&b.length>2&&a.set("displayAuthor",!0),d.test(f)}),0===e.length?this.trigger("query:empty"):a("body").removeClass("no-results"),this.reset(e)},paginate:function(a){var b=this;return a=a||0,b=_(b.rest(c.data.settings.postsPerPage*a)),b=_(b.first(c.data.settings.postsPerPage))},query:function(b){var c,d,e,f=this.queries,g=this;if(this.currentQuery.request=b,c=_.find(f,function(a){return _.isEqual(a.request,b)}),d=_.has(b,"page"),d||(this.currentQuery.page=1),c||d){if(d)return this.apiCall(b,d).done(function(a){g.add(a.themes),g.trigger("query:success",a.info.results),g.loadingThemes=!1}).fail(function(){g.trigger("query:fail")});0===c.themes.length?g.trigger("query:empty"):a("body").removeClass("no-results"),_.isNumber(c.total)&&(this.count=c.total),this.reset(c.themes),c.total||(this.count=this.length),this.trigger("themes:update"),this.trigger("query:success",this.count)}else c=this.apiCall(b).done(function(a){a.themes&&(g.reset(a.themes),e=a.info.results,f.push({themes:a.themes,request:b,total:e})),g.trigger("themes:update"),g.trigger("query:success",e),a.themes&&0===a.themes.length&&g.trigger("query:empty")}).fail(function(){g.trigger("query:fail")})},apiCall:function(b,d){var e={type:"POST",url:"https://api.wordpress.org/themes/info/1.1/",jsonp:"callback",dataType:"jsonp",data:{action:"query_themes",request:_.extend({per_page:c.data.settings.postsPerPage,locale:c.data.settings.locale,fields:{description:!0,sections:!1,tested:!0,requires:!0,downloaded:!1,downloadlink:!0,last_updated:!0,homepage:!0,theme_url:!0,parent:!0,tags:!0,rating:!0,ratings:!0,num_ratings:!0,extended_author:!0,photon_screenshots:!0,active_installs:!0}},b)},beforeSend:function(){d||a("body").addClass("loading-content").removeClass("no-results")}};return a.Deferred(function(b){a.ajax(e).done(function(a){b.resolveWith(this,[a])}).fail(function(){b.rejectWith(this,arguments)})}).promise()}}),c.view.Theme=wp.Backbone.View.extend({className:"theme",state:"grid",html:wp.themes.template("theme"),events:{click:"expand",keydown:"expand",touchend:"expand",keyup:"addFocus",touchmove:"preventExpand"},touchDrag:!1,render:function(){var a=this.model.toJSON();a.permalink=c.data.settings.path+c.router.baseUrl(a.slug),a.path=c.data.settings.path,this.$el.html(this.html(a)).attr({tabindex:0,"aria-describedby":a.id+"-action "+a.id+"-name"})},addFocus:function(){var b=a(":focus").hasClass("theme")?a(":focus"):a(":focus").parents(".theme");a(".theme.focus").removeClass("focus"),b.addClass("focus")},expand:function(b){var d=this;return b=b||window.event,!0===b.metaKey|b.ctrlKey&&"click"===b.type||"keydown"===b.type&&13!==b.which&&32!==b.which?void 0:this.touchDrag===!0?this.touchDrag=!1:void(a(b.target).is(".theme-actions a")||(c.focusedTheme=this.$el,this.trigger("theme:expand",d.model.cid),b.preventDefault()))},preventExpand:function(){this.touchDrag=!0}}),c.view.Details=wp.Backbone.View.extend({className:"theme-overlay",events:{click:"collapse","click .left":"previousTheme","click .right":"nextTheme","click .theme-actions .button-secondary":"preview","keydown .theme-actions .button-secondary":"preview","touchend .theme-actions .button-secondary":"preview","click .favorite":"favourite_toggle"},html:c.template("theme-single"),render:function(){var a=this.model.toJSON(),d=new Date;d.setUTCFullYear(a.last_updated.substring(0,4),a.last_updated.substring(5,7)-1,a.last_updated.substring(8,10)),a.last_updated=d.toLocaleDateString(!1,{day:"numeric",month:"long",year:"numeric"}),a.is_outdated=d.setYear(d.getYear()+1902).valueOf()<(new Date).valueOf(),a.tags=_.map(a.tags,function(a,d){return translated_tag=b.tags[d]||a,'<a href="'+c.data.settings.path+c.router.baseUrl("tags/"+d)+'">'+translated_tag+"</a>"}).join(", "),a.path=c.data.settings.path,a.active_installs<10?a.active_installs=b.active_installs_less_than_10:a.active_installs>=1e6?a.active_installs=b.active_installs_1_million:a.active_installs=a.active_installs.toLocaleString()+"+",a.show_favorites=!!c.data.settings.favorites.user,a.is_favorited=-1!=c.data.settings.favorites.themes.indexOf(a.slug),this.$el.html(this.html(a)),this.navigation(),this.screenshotCheck(this.$el),this.containFocus(this.$el),this.renderDownloadsGraph()},favourite_toggle:function(b){var d,e=this.$el.find(".favorite"),f=!e.hasClass("favorited"),g=this.model.get("slug");e.toggleClass("favorited"),f?c.data.settings.favorites.themes.push(g):(d=c.data.settings.favorites.themes.indexOf(g),d>-1&&delete c.data.settings.favorites.themes[d]);var h={type:"GET",url:"https://api.wordpress.org/themes/theme-directory/1.0/",jsonp:"callback",dataType:"jsonp",data:{action:f?"add-favorite":"remove-favorite",theme:this.model.get("slug"),_wpnonce:c.data.settings.favorites.nonce}};a.ajax(h).done(function(a){"undefined"!=typeof a.error&&"not_logged_in"==a.error&&(c.data.settings.favorites.themes=[],c.data.settings.favorites.user="")})},preview:function(b){var d,e,f=this;return this.touchDrag===!0?this.touchDrag=!1:void(a(b.target).hasClass("button-primary")||("keydown"!==b.type||13===b.which||32===b.which)&&("keydown"===b.type&&13!==b.which&&a(":focus").hasClass("button")||(b=b||window.event,b.preventDefault(),c.focusedTheme=this.$el,e=new c.view.Preview({model:this.model}),e.render(),this.setNavButtonsState(),c.data.settings.isMobile?e.$el.addClass("wp-full-overlay collapsed"):e.$el.addClass("wp-full-overlay expanded"),a(".theme-install-overlay").append(e.el),this.listenTo(e,"theme:next",function(){return this.trigger("theme:next"),d=f.model,_.isUndefined(f.current)||(d=f.current),f.current=f.model.collection.at(f.model.collection.indexOf(d)+1),_.isUndefined(f.current)?(f.options.parent.parent.trigger("theme:end"),f.current=d):(e.model=f.current,e.render(),this.setNavButtonsState(),void a(".next-theme").focus())}).listenTo(e,"theme:previous",function(){this.trigger("theme:previous"),d=f.model,0!==f.model.collection.indexOf(f.current)&&(_.isUndefined(f.current)||(d=f.current),f.current=f.model.collection.at(f.model.collection.indexOf(d)-1),_.isUndefined(f.current)||(e.model=f.current,e.render(),this.setNavButtonsState(),a(".previous-theme").focus()))}),this.listenTo(e,"preview:close",function(){f.current=f.model}))))},setNavButtonsState:function(){var b=a(".theme-install-overlay"),c=_.isUndefined(this.current)?this.model:this.current;0===this.model.collection.indexOf(c)&&b.find(".previous-theme").addClass("disabled"),_.isUndefined(this.model.collection.at(this.model.collection.indexOf(c)+1))&&b.find(".next-theme").addClass("disabled")},containFocus:function(b){var c,d=window.event;("undefined"==typeof d||1===a(d.target).closest(".theme").length)&&_.delay(function(){a(".theme-wrap a.button-primary:visible").focus()},500),b.on("keydown.wp-themes",function(d){9===d.which&&(c=a(d.target),c.is("button.close")&&d.shiftKey?(b.find(".theme-tags a:last-child").focus(),d.preventDefault()):c.is(".theme-tags a:last-child")&&(b.find("button.close").focus(),d.preventDefault()))})},collapse:function(b){var d,e,f,g,h,i=this,j={};1!==c.data.themes.length&&(b=b||window.event,(a(b.target).is(".close")||27===b.keyCode)&&(a("body").addClass("closing-overlay"),this.$el.fadeOut(1,function(){a("body").removeClass("closing-overlay"),i.closeOverlay(),d=document.body.scrollTop,(e=c.Collection.prototype.currentQuery.request.author)?(c.router.navigate(c.router.baseUrl("author/"+e)),c.utils.title(e)):(f=c.Collection.prototype.currentQuery.request.search)?(c.router.navigate(c.router.baseUrl(c.router.searchPath+f)),c.utils.title(f)):(g=c.view.Installer.prototype.filtersChecked())?(c.router.navigate(c.router.baseUrl("tags/"+g.join("+"))),c.utils.title(_.each(g,function(b,c){g[c]=a('label[for="filter-id-'+b+'"]').text()}).join(", "))):(h=a(".filter-links .current"))&&(h.length||(h=a('.filter-links [data-sort="featured"]'),j={trigger:!0}),c.router.navigate(c.router.baseUrl(c.router.browsePath+h.data("sort")),j),c.utils.title(h.text())),document.body.scrollTop=d,c.focusedTheme&&c.focusedTheme.focus()})))},renderDownloadsGraph:function(){var b=this;a.getJSON("https://api.wordpress.org/stats/themes/1.0/downloads.php?slug="+b.model.get("id")+"&limit=260&callback=?",function(c){var d=new google.visualization.DataTable,e=0;d.addColumn("string",_wpThemeSettings.l10n.date),d.addColumn("number",_wpThemeSettings.l10n.downloads),a.each(c,function(a,b){d.addRow(),d.setValue(e,0,new Date(a).toLocaleDateString()),d.setValue(e,1,Number(b)),e++}),new google.visualization.ColumnChart(document.getElementById("theme-download-stats-"+b.model.get("id"))).draw(d,{colors:["#253578"],legend:{position:"none"},titlePosition:"in",axisTitlesPosition:"in",chartArea:{height:280,left:35,width:"98%"},hAxis:{textStyle:{color:"black",fontSize:9}},vAxis:{format:"###,###",textPosition:"out",viewWindowMode:"explicit",viewWindow:{min:0}},bar:{groupWidth:d.getNumberOfRows()>100?"100%":null},height:350})})},navigation:function(){this.model.cid===this.model.collection.at(0).cid&&this.$el.find(".left").addClass("disabled"),this.model.cid===this.model.collection.at(this.model.collection.length-1).cid&&this.$el.find(".right").addClass("disabled")},closeOverlay:function(){a("body").removeClass("modal-open"),this.remove(),this.unbind(),this.trigger("theme:collapse")},nextTheme:function(){var a=this;return a.trigger("theme:next",a.model.cid),!1},previousTheme:function(){var a=this;return a.trigger("theme:previous",a.model.cid),!1},screenshotCheck:function(a){var b=new Image;b.src=a.find(".screenshot img").attr("src")}}),c.view.Preview=c.view.Details.extend({className:"wp-full-overlay expanded",el:".theme-install-overlay",events:{"click .close-full-overlay":"close","click .collapse-sidebar":"collapse","click .previous-theme":"previousTheme","click .next-theme":"nextTheme",keyup:"keyEvent"},html:c.template("theme-preview"),render:function(){var b=this.model.toJSON();this.$el.html(this.html(b)),c.router.navigate(c.router.baseUrl(c.router.themePath+this.model.get("id"))),this.$el.fadeIn(200,function(){a("body").addClass("theme-installer-active full-overlay-active"),a(".close-full-overlay").focus()})},close:function(){return this.$el.fadeOut(200,function(){a("body").removeClass("theme-installer-active full-overlay-active"),c.focusedTheme&&c.focusedTheme.focus()}),this.trigger("preview:close"),this.undelegateEvents(),this.unbind(),c.router.navigate(c.router.baseUrl(c.router.themePath+this.model.get("id"))),!1},collapse:function(){return this.$el.toggleClass("collapsed").toggleClass("expanded"),!1},keyEvent:function(){return 27===event.keyCode&&(this.undelegateEvents(),this.close()),39===event.keyCode&&_.once(this.nextTheme()),37===event.keyCode&&this.previousTheme(),!1}}),c.view.Themes=wp.Backbone.View.extend({className:"themes",$overlay:a("div.theme-overlay"),index:0,count:a(".wp-filter .theme-count"),initialize:function(b){var c=this;this.parent=b.parent,this.setView("grid"),this.listenTo(c.collection,"themes:update",function(){c.parent.page=0,c.render(this)}),this.listenTo(c.collection,"query:success",function(a){_.isNumber(a)?c.count.text(a.toLocaleString()):c.count.text(c.collection.length.toLocaleString())}),this.listenTo(c.collection,"query:empty",function(){a("body").addClass("no-results")}),this.listenTo(this.parent,"theme:scroll",function(){c.renderThemes(c.parent.page)}),this.listenTo(this.parent,"theme:close",function(){c.overlay&&c.overlay.closeOverlay()}),a("body").on("keyup",function(a){c.overlay&&(39===a.keyCode&&c.overlay.nextTheme(),37===a.keyCode&&c.overlay.previousTheme(),27===a.keyCode&&c.overlay.collapse(a))})},render:function(){this.$el.empty(),1===c.data.themes.length&&(this.singleTheme=new c.view.Details({model:this.collection.models[0]}),this.singleTheme.render(),this.$el.addClass("single-theme"),this.$el.append(this.singleTheme.el)),this.options.collection.size()>0&&this.renderThemes(this.parent.page),this.count.text(this.collection.count?this.collection.count:this.collection.length)},renderThemes:function(b){var d=this;return d.instance=d.collection.paginate(b),0===d.instance.size()?void this.parent.trigger("theme:end"):(b>=1&&a(".add-new-theme").remove(),d.instance.each(function(a){d.theme=new c.view.Theme({model:a,parent:d}),d.theme.render(),d.$el.append(d.theme.el),d.listenTo(d.theme,"theme:expand",d.expand,d)}),void this.parent.page++)},setView:function(a){return a},expand:function(b){var d=this;this.model=d.collection.get(b),c.router.navigate(c.router.baseUrl(c.router.themePath+this.model.id)),c.utils.title(this.model.attributes.name),this.setView("detail"),a("body").addClass("modal-open"),this.overlay=new c.view.Details({model:d.model}),this.overlay.render(),this.$overlay.html(this.overlay.el),this.listenTo(this.overlay,"theme:next",function(){d.next([d.model.cid]),a(".theme-header").find(".right").focus()}).listenTo(this.overlay,"theme:previous",function(){d.previous([d.model.cid]),a(".theme-header").find(".left").focus()})},next:function(a){var b,c,d=this;b=d.collection.get(a[0]),c=d.collection.at(d.collection.indexOf(b)+1),void 0!==c&&d.theme.trigger("theme:expand",c.cid)},previous:function(a){var b,c,d=this;b=d.collection.get(a[0]),c=d.collection.at(d.collection.indexOf(b)-1),void 0!==c&&d.theme.trigger("theme:expand",c.cid)}}),c.view.Search=wp.Backbone.View.extend({tagName:"input",className:"wp-filter-search",id:"wp-filter-search-input",searching:!1,attributes:{placeholder:b.searchPlaceholder,type:"search"},events:{keyup:"search",search:"search"},initialize:function(a){this.parent=a.parent,this.listenTo(this.parent,"theme:close",function(){this.searching=!1})},search:function(a){("keyup"!==a.type||9!==a.which&&16!==a.which)&&(this.collection=this.options.parent.view.collection,"keyup"===a.type&&27===a.which&&(a.target.value=""),_.debounce(_.bind(this.doSearch,this),300)(a.target.value))},doSearch:_.debounce(function(b){var d={};c.view.Installer.prototype.clearFilters(jQuery.Event("click")),d.search=b,"author:"===b.substring(0,7)&&(d.search="",d.author=b.slice(7)),"tag:"===b.substring(0,4)&&(d.search="",d.tag=[b.slice(4)]),a(".filter-links li > a.current").removeClass("current"),a("body").removeClass("show-filters filters-applied"),b?(c.utils.title(b),c.router.navigate(c.router.baseUrl(c.router.searchPath+b),{replace:!0})):(delete d.search,d.browse="featured",c.utils.title(a('.filter-links [data-sort="featured"]').text()),c.router.navigate(c.router.baseUrl(c.router.browsePath+"featured"),{replace:!0})),this.collection.query(d)},300)}),c.view.Installer=c.view.Appearance.extend({el:"#themes",events:{"click .filter-links li > a":"onSort","click .theme-filter":"onFilter","click .drawer-toggle":"moreFilters","click .filter-drawer .apply-filters":"applyFilters",'click .filter-group [type="checkbox"]':"addFilter","click .filter-drawer .clear-filters":"clearFilters","click .filtered-by":"backToFilters"},activeClass:"current",searchContainer:a(".wp-filter .search-form"),render:function(){var d=this;this.search(),this.collection=new c.Collection,this.listenTo(this,"theme:end",function(){d.collection.loadingThemes||(d.collection.loadingThemes=!0,d.collection.currentQuery.page++,_.extend(d.collection.currentQuery.request,{page:d.collection.currentQuery.page}),d.collection.query(d.collection.currentQuery.request))}),this.listenTo(this.collection,"query:success",function(){a("body").removeClass("loading-content"),a(".theme-browser").find("div.error").remove()}),this.listenTo(this.collection,"query:fail",function(){a("body").removeClass("loading-content"),a(".theme-browser").find("div.error").remove(),a(".theme-browser").find("div.themes").before('<div class="error"><p>'+b.error+"</p></div>")}),this.view&&this.view.remove(),this.view=new c.view.Themes({collection:this.collection,parent:this}),this.page=0,this.$el.find(".themes").remove(),this.view.render(),this.$el.find(".theme-browser").append(this.view.el).addClass("rendered")},browse:function(a){"favorites"==a?this.collection.query({browse:a,user:c.data.settings.favorites.user}):this.collection.query({browse:a})},onSort:function(b){var d=a(b.target),e=d.data("sort");b.preventDefault(),a("body").removeClass("filters-applied show-filters"),d.hasClass(this.activeClass)||(this.sort(e),c.router.navigate(c.router.baseUrl(c.router.browsePath+e)))},sort:function(b){var d=a('.filter-links [data-sort="'+b+'"]'),e=this;e.clearSearch(),_.each(a(".filter-group").find(":checkbox").filter(":checked"),function(b){return a(b).prop("checked",!1),e.filtersChecked()}),a(".filter-links li > a, .theme-filter").removeClass(this.activeClass),d.addClass(this.activeClass),c.utils.title(d.text()),this.browse(b)},onFilter:function(b){var c,d=a(b.target),e=d.data("filter");d.hasClass(this.activeClass)||(a(".filter-links li > a, .theme-section").removeClass(this.activeClass),d.addClass(this.activeClass),e&&(e=_.union([e,this.filtersChecked()]),c={tag:[e]},this.collection.query(c)))},addFilter:function(){this.filtersChecked()},applyFilters:function(b){var d,e=[],f=this.filtersChecked(),g={tag:f},h=a(".filtered-by .tags");b&&b.preventDefault(),a("body").addClass("filters-applied"),a(".filter-links li > a.current").removeClass("current"),h.empty(),_.each(f,function(b){d=a('label[for="filter-id-'+b+'"]').text(),e.push(d),h.append('<span class="tag">'+d+"</span>")}),c.router.navigate(c.router.baseUrl("tags/"+f.join("+"))),c.utils.title(e.join(", ")),this.collection.query(g)},filtersChecked:function(){var b=a(".filter-group").find(":checkbox").filter(":checked"),c=a(".filter-drawer"),d=[];return _.each(b,function(b){d.push(a(b).prop("value"))}),0===d.length?(c.find(".apply-filters").prop("disabled",!0).find("span").text(""),c.find(".clear-filters").hide(),a("body").removeClass("filters-applied"),!1):(c.find(".apply-filters").prop("disabled",!1).find("span").text(d.length),c.find(".clear-filters").css("display","inline-block"),d)},moreFilters:function(b){return b.preventDefault(),a("body").hasClass("filters-applied")?this.backToFilters():a("body").hasClass("show-filters")&&this.filtersChecked()?this.addFilter():(setTimeout(function(){var b=0;b=_.reduce(a(".filter-group"),function(b,c){return Math.max(b,a(c).outerHeight())},b),b>710&&a(".filter-group").outerHeight(b)},0),this.clearSearch(),void a("body").toggleClass("show-filters"))},clearFilters:function(b){var c=a(".filter-group").find(":checkbox"),d=this;b.preventDefault(),_.each(c.filter(":checked"),function(b){return a(b).prop("checked",!1),d.filtersChecked()})},backToFilters:function(b){b&&b.preventDefault(),a("body").removeClass("filters-applied")},clearSearch:function(){a("#wp-filter-search-input").val("")}}),c.Router=Backbone.Router.extend({routes:{"browse/:sort(/)":"sort","tags/:tag(/)":"tag","search/:query(/)":"search","author/:author(/)":"author",":slug(/)":"preview","":"sort"},baseUrl:function(a){return 0!==a.length&&(a+="/"),a},themePath:"",browsePath:"browse/",searchPath:"search/",search:function(b){a(".wp-filter-search").val(b)},navigate:function(){Backbone.history._hasPushState&&Backbone.Router.prototype.navigate.apply(this,arguments),"object"==typeof _gaq&&_gaq.push(["_trackPageview",c.data.settings.path+arguments[0]])}}),c.Run={init:function(){this.view=new c.view.Installer({section:"featured",SearchView:c.view.Search}),this.render()},render:function(){this.view.render(),this.routes(),Backbone.history.start({root:c.data.settings.path,pushState:!0,hashChange:!1})},routes:function(){var b=this,d={};c.router=new c.Router,c.router.on("route:preview",function(a){b.view.collection.queries.push(c.data.query),d.theme=a,b.view.collection.query(d),b.view.view.expand(a)}),c.router.on("route:sort",function(a){b.view.collection.queries.push(c.data.query),a||(a="featured"),b.view.sort(a),b.view.trigger("theme:close")}),c.router.on("route:search",function(){b.view.collection.queries.push(c.data.query),a(".wp-filter-search").focus().trigger("keyup"),b.view.trigger("theme:close")}),c.router.on("route:tag",function(d){b.view.collection.queries.push(c.data.query),_.each(d.split("+"),function(b){a("#filter-id-"+b).prop("checked",!0)}),a("body").removeClass("show-filters").addClass("show-filters"),b.view.applyFilters(),b.view.trigger("theme:close")}),c.router.on("route:author",function(a){b.view.collection.queries.push(c.data.query),d.author=a,b.view.collection.query(d),c.utils.title(a),b.view.trigger("theme:close")})}},a(function(){c.Run.init()})}(jQuery),function(a){a.load("visualization","1",{packages:["corechart"]})}(google);
     1window.wp=window.wp||{},function(a){var b,c=wp.themes=wp.themes||{};c.data=_wpThemeSettings,b=c.data.l10n,_.extend(c,{model:{},view:{},routes:{},router:{},template:wp.template}),c.utils={title:function(b){document.title=a("<div/>").html(c.data.settings.title.replace("%s",a("<div/>").text(b).html())).text()}},c.Model=Backbone.Model.extend({initialize:function(){var a;this.set({id:this.get("slug")||this.get("id")}),this.has("sections")&&(a=this.get("sections").description,this.set({description:a}))}}),c.view.Appearance=wp.Backbone.View.extend({el:"#themes .theme-browser",window:a(window),page:0,initialize:function(a){_.bindAll(this,"scroller"),this.SearchView=a.SearchView?a.SearchView:c.view.Search,this.window.bind("scroll",_.throttle(this.scroller,300))},render:function(){this.view=new c.view.Themes({collection:this.collection,parent:this}),this.search(),this.view.render(),this.$el.find(".themes").remove(),this.$el.append(this.view.el).addClass("rendered")},searchContainer:"",search:function(){var c,d=this;c=new this.SearchView({collection:d.collection,parent:this}),c.render(),this.searchContainer.append(a.parseHTML('<label class="screen-reader-text" for="wp-filter-search-input">'+b.search+"</label>")).append(c.el)},scroller:function(){var a,b,c=this;a=this.window.scrollTop()+c.window.height(),b=c.$el.offset().top+c.$el.outerHeight(!1)-c.window.height(),b=Math.round(.9*b),a>b&&this.trigger("theme:scroll")}}),c.Collection=Backbone.Collection.extend({model:c.Model,terms:"",queries:[],currentQuery:{page:1,request:{}},count:!1,loadingThemes:!1,doSearch:function(a){this.terms!==a&&(this.terms=a,this.terms.length>0&&this.search(this.terms),""===this.terms&&this.reset(c.data.themes),this.trigger("themes:update"))},search:function(b){var d,e,f,g,h,i;this.reset(c.data.themes,{silent:!0}),b=b.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"),b=b.replace(/ /g,")(?=.*"),d=new RegExp("^(?=.*"+b+").+","i"),e=this.filter(function(a){return g=a.get("name").replace(/(<([^>]+)>)/gi,""),h=a.get("description").replace(/(<([^>]+)>)/gi,""),i=a.get("author").replace(/(<([^>]+)>)/gi,""),f=_.union([g,a.get("id"),h,i,a.get("tags")]),d.test(a.get("author"))&&b.length>2&&a.set("displayAuthor",!0),d.test(f)}),0===e.length?this.trigger("query:empty"):a("body").removeClass("no-results"),this.reset(e)},paginate:function(a){var b=this;return a=a||0,b=_(b.rest(c.data.settings.postsPerPage*a)),b=_(b.first(c.data.settings.postsPerPage))},query:function(b){var c,d,e,f=this.queries,g=this;if(this.currentQuery.request=b,c=_.find(f,function(a){return _.isEqual(a.request,b)}),d=_.has(b,"page"),d||(this.currentQuery.page=1),c||d){if(d)return this.apiCall(b,d).done(function(a){g.add(a.themes),g.trigger("query:success",a.info.results),g.loadingThemes=!1}).fail(function(){g.trigger("query:fail")});0===c.themes.length?g.trigger("query:empty"):a("body").removeClass("no-results"),_.isNumber(c.total)&&(this.count=c.total),this.reset(c.themes),c.total||(this.count=this.length),this.trigger("themes:update"),this.trigger("query:success",this.count)}else c=this.apiCall(b).done(function(a){a.themes&&(g.reset(a.themes),e=a.info.results,f.push({themes:a.themes,request:b,total:e})),g.trigger("themes:update"),g.trigger("query:success",e),a.themes&&0===a.themes.length&&g.trigger("query:empty")}).fail(function(){g.trigger("query:fail")})},apiCall:function(b,d){var e={type:"POST",url:"https://api.wordpress.org/themes/info/1.1/",jsonp:"callback",dataType:"jsonp",data:{action:"query_themes",request:_.extend({per_page:c.data.settings.postsPerPage,locale:c.data.settings.locale,fields:{description:!0,sections:!1,tested:!0,requires:!0,downloaded:!1,downloadlink:!0,last_updated:!0,homepage:!0,theme_url:!0,parent:!0,tags:!0,rating:!0,ratings:!0,num_ratings:!0,extended_author:!0,photon_screenshots:!0,active_installs:!0}},b)},beforeSend:function(){d||a("body").addClass("loading-content").removeClass("no-results")}};return a.Deferred(function(b){a.ajax(e).done(function(a){b.resolveWith(this,[a])}).fail(function(){b.rejectWith(this,arguments)})}).promise()}}),c.view.Theme=wp.Backbone.View.extend({className:"theme",state:"grid",html:wp.themes.template("theme"),events:{click:"expand",keydown:"expand",touchend:"expand",keyup:"addFocus",touchmove:"preventExpand"},touchDrag:!1,render:function(){var a=this.model.toJSON();a.permalink=c.data.settings.path+c.router.baseUrl(a.slug),a.path=c.data.settings.path,this.$el.html(this.html(a)).attr({tabindex:0,"aria-describedby":a.id+"-action "+a.id+"-name"})},addFocus:function(){var b=a(":focus").hasClass("theme")?a(":focus"):a(":focus").parents(".theme");a(".theme.focus").removeClass("focus"),b.addClass("focus")},expand:function(b){var d=this;if(b=b||window.event,!(!0===b.metaKey|b.ctrlKey&&"click"===b.type||"keydown"===b.type&&13!==b.which&&32!==b.which))return this.touchDrag===!0?this.touchDrag=!1:void(a(b.target).is(".theme-actions a")||(c.focusedTheme=this.$el,this.trigger("theme:expand",d.model.cid),b.preventDefault()))},preventExpand:function(){this.touchDrag=!0}}),c.view.Details=wp.Backbone.View.extend({className:"theme-overlay",events:{click:"collapse","click .left":"previousTheme","click .right":"nextTheme","click .theme-actions .button-secondary":"preview","keydown .theme-actions .button-secondary":"preview","touchend .theme-actions .button-secondary":"preview","click .favorite":"favourite_toggle"},html:c.template("theme-single"),render:function(){var a=this.model.toJSON(),d=new Date;d.setUTCFullYear(a.last_updated.substring(0,4),a.last_updated.substring(5,7)-1,a.last_updated.substring(8,10)),a.last_updated=d.toLocaleDateString(!1,{day:"numeric",month:"long",year:"numeric"}),a.is_outdated=d.setYear(d.getYear()+1902).valueOf()<(new Date).valueOf(),a.tags=_.map(a.tags,function(a,d){return translated_tag=b.tags[d]||a,'<a href="'+c.data.settings.path+c.router.baseUrl("tags/"+d)+'">'+translated_tag+"</a>"}).join(", "),a.path=c.data.settings.path,a.active_installs<10?a.active_installs=b.active_installs_less_than_10:a.active_installs>=1e6?a.active_installs=b.active_installs_1_million:a.active_installs=a.active_installs.toLocaleString()+"+",a.show_favorites=!!c.data.settings.favorites.user,a.is_favorited=c.data.settings.favorites.themes.indexOf(a.slug)!=-1,this.$el.html(this.html(a)),this.navigation(),this.screenshotCheck(this.$el),this.containFocus(this.$el),this.renderDownloadsGraph()},favourite_toggle:function(b){var d,e=this.$el.find(".favorite"),f=!e.hasClass("favorited"),g=this.model.get("slug");e.toggleClass("favorited"),f?c.data.settings.favorites.themes.push(g):(d=c.data.settings.favorites.themes.indexOf(g),d>-1&&delete c.data.settings.favorites.themes[d]);var h={type:"GET",url:"https://api.wordpress.org/themes/theme-directory/1.0/",jsonp:"callback",dataType:"jsonp",data:{action:f?"add-favorite":"remove-favorite",theme:this.model.get("slug"),_wpnonce:c.data.settings.favorites.nonce}};a.ajax(h).done(function(a){"undefined"!=typeof a.error&&"not_logged_in"==a.error&&(c.data.settings.favorites.themes=[],c.data.settings.favorites.user="")})},preview:function(b){var d,e,f=this;return this.touchDrag===!0?this.touchDrag=!1:void(a(b.target).hasClass("button-primary")||"keydown"===b.type&&13!==b.which&&32!==b.which||"keydown"===b.type&&13!==b.which&&a(":focus").hasClass("button")||(b=b||window.event,b.preventDefault(),c.focusedTheme=this.$el,e=new c.view.Preview({model:this.model}),e.render(),this.setNavButtonsState(),c.data.settings.isMobile?e.$el.addClass("wp-full-overlay collapsed"):e.$el.addClass("wp-full-overlay expanded"),a(".theme-install-overlay").append(e.el),this.listenTo(e,"theme:next",function(){return this.trigger("theme:next"),d=f.model,_.isUndefined(f.current)||(d=f.current),f.current=f.model.collection.at(f.model.collection.indexOf(d)+1),_.isUndefined(f.current)?(f.options.parent.parent.trigger("theme:end"),f.current=d):(e.model=f.current,e.render(),this.setNavButtonsState(),void a(".next-theme").focus())}).listenTo(e,"theme:previous",function(){this.trigger("theme:previous"),d=f.model,0!==f.model.collection.indexOf(f.current)&&(_.isUndefined(f.current)||(d=f.current),f.current=f.model.collection.at(f.model.collection.indexOf(d)-1),_.isUndefined(f.current)||(e.model=f.current,e.render(),this.setNavButtonsState(),a(".previous-theme").focus()))}),this.listenTo(e,"preview:close",function(){f.current=f.model})))},setNavButtonsState:function(){var b=a(".theme-install-overlay"),c=_.isUndefined(this.current)?this.model:this.current;0===this.model.collection.indexOf(c)&&b.find(".previous-theme").addClass("disabled"),_.isUndefined(this.model.collection.at(this.model.collection.indexOf(c)+1))&&b.find(".next-theme").addClass("disabled")},containFocus:function(b){var c,d=window.event;"undefined"!=typeof d&&1!==a(d.target).closest(".theme").length||_.delay(function(){a(".theme-wrap a.button-primary:visible").focus()},500),b.on("keydown.wp-themes",function(d){9===d.which&&(c=a(d.target),c.is("button.close")&&d.shiftKey?(b.find(".theme-tags a:last-child").focus(),d.preventDefault()):c.is(".theme-tags a:last-child")&&(b.find("button.close").focus(),d.preventDefault()))})},collapse:function(b){var d,e,f,g,h,i=this,j={};1!==c.data.themes.length&&(b=b||window.event,(a(b.target).is(".close")||27===b.keyCode)&&(a("body").addClass("closing-overlay"),this.$el.fadeOut(1,function(){a("body").removeClass("closing-overlay"),i.closeOverlay(),d=document.body.scrollTop,(e=c.Collection.prototype.currentQuery.request.author)?(c.router.navigate(c.router.baseUrl("author/"+e)),c.utils.title(e)):(f=c.Collection.prototype.currentQuery.request.search)?(c.router.navigate(c.router.baseUrl(c.router.searchPath+f)),c.utils.title(f)):(g=c.view.Installer.prototype.filtersChecked())?(c.router.navigate(c.router.baseUrl("tags/"+g.join("+"))),c.utils.title(_.each(g,function(b,c){g[c]=a('label[for="filter-id-'+b+'"]').text()}).join(", "))):(h=a(".filter-links .current"))&&(h.length||(h=a('.filter-links [data-sort="featured"]'),j={trigger:!0}),c.router.navigate(c.router.baseUrl(c.router.browsePath+h.data("sort")),j),c.utils.title(h.text())),document.body.scrollTop=d,c.focusedTheme&&c.focusedTheme.focus()})))},renderDownloadsGraph:function(){var b=this;a.getJSON("https://api.wordpress.org/stats/themes/1.0/downloads.php?slug="+b.model.get("id")+"&limit=260&callback=?",function(c){var d=new google.visualization.DataTable,e=0;d.addColumn("string",_wpThemeSettings.l10n.date),d.addColumn("number",_wpThemeSettings.l10n.downloads),a.each(c,function(a,b){d.addRow(),d.setValue(e,0,new Date(a).toLocaleDateString()),d.setValue(e,1,Number(b)),e++}),new google.visualization.ColumnChart(document.getElementById("theme-download-stats-"+b.model.get("id"))).draw(d,{colors:["#253578"],legend:{position:"none"},titlePosition:"in",axisTitlesPosition:"in",chartArea:{height:280,left:35,width:"98%"},hAxis:{textStyle:{color:"black",fontSize:9}},vAxis:{format:"###,###",textPosition:"out",viewWindowMode:"explicit",viewWindow:{min:0}},bar:{groupWidth:d.getNumberOfRows()>100?"100%":null},height:350})})},navigation:function(){this.model.cid===this.model.collection.at(0).cid&&this.$el.find(".left").addClass("disabled"),this.model.cid===this.model.collection.at(this.model.collection.length-1).cid&&this.$el.find(".right").addClass("disabled")},closeOverlay:function(){a("body").removeClass("modal-open"),this.remove(),this.unbind(),this.trigger("theme:collapse")},nextTheme:function(){var a=this;return a.trigger("theme:next",a.model.cid),!1},previousTheme:function(){var a=this;return a.trigger("theme:previous",a.model.cid),!1},screenshotCheck:function(a){var b=new Image;b.src=a.find(".screenshot img").attr("src")}}),c.view.Preview=c.view.Details.extend({className:"wp-full-overlay expanded",el:".theme-install-overlay",events:{"click .close-full-overlay":"close","click .collapse-sidebar":"collapse","click .previous-theme":"previousTheme","click .next-theme":"nextTheme",keyup:"keyEvent"},html:c.template("theme-preview"),render:function(){var b=this.model.toJSON();this.$el.html(this.html(b)),c.router.navigate(c.router.baseUrl(c.router.themePath+this.model.get("id"))),this.$el.fadeIn(200,function(){a("body").addClass("theme-installer-active full-overlay-active"),a(".close-full-overlay").focus()})},close:function(){return this.$el.fadeOut(200,function(){a("body").removeClass("theme-installer-active full-overlay-active"),c.focusedTheme&&c.focusedTheme.focus()}),this.trigger("preview:close"),this.undelegateEvents(),this.unbind(),c.router.navigate(c.router.baseUrl(c.router.themePath+this.model.get("id"))),!1},collapse:function(){return this.$el.toggleClass("collapsed").toggleClass("expanded"),!1},keyEvent:function(){return 27===event.keyCode&&(this.undelegateEvents(),this.close()),39===event.keyCode&&_.once(this.nextTheme()),37===event.keyCode&&this.previousTheme(),!1}}),c.view.Themes=wp.Backbone.View.extend({className:"themes",$overlay:a("div.theme-overlay"),index:0,count:a(".wp-filter .theme-count"),initialize:function(b){var c=this;this.parent=b.parent,this.setView("grid"),this.listenTo(c.collection,"themes:update",function(){c.parent.page=0,c.render(this)}),this.listenTo(c.collection,"query:success",function(a){_.isNumber(a)?c.count.text(a.toLocaleString()):c.count.text(c.collection.length.toLocaleString())}),this.listenTo(c.collection,"query:empty",function(){a("body").addClass("no-results")}),this.listenTo(this.parent,"theme:scroll",function(){c.renderThemes(c.parent.page)}),this.listenTo(this.parent,"theme:close",function(){c.overlay&&c.overlay.closeOverlay()}),a("body").on("keyup",function(a){c.overlay&&(39===a.keyCode&&c.overlay.nextTheme(),37===a.keyCode&&c.overlay.previousTheme(),27===a.keyCode&&c.overlay.collapse(a))})},render:function(){this.$el.empty(),1===c.data.themes.length&&(this.singleTheme=new c.view.Details({model:this.collection.models[0]}),this.singleTheme.render(),this.$el.addClass("single-theme"),this.$el.append(this.singleTheme.el)),this.options.collection.size()>0&&this.renderThemes(this.parent.page),this.count.text(this.collection.count?this.collection.count:this.collection.length)},renderThemes:function(b){var d=this;return d.instance=d.collection.paginate(b),0===d.instance.size()?void this.parent.trigger("theme:end"):(b>=1&&a(".add-new-theme").remove(),d.instance.each(function(a){d.theme=new c.view.Theme({model:a,parent:d}),d.theme.render(),d.$el.append(d.theme.el),d.listenTo(d.theme,"theme:expand",d.expand,d)}),void this.parent.page++)},setView:function(a){return a},expand:function(b){var d=this;this.model=d.collection.get(b),c.router.navigate(c.router.baseUrl(c.router.themePath+this.model.id)),c.utils.title(this.model.attributes.name),this.setView("detail"),a("body").addClass("modal-open"),this.overlay=new c.view.Details({model:d.model}),this.overlay.render(),this.$overlay.html(this.overlay.el),this.listenTo(this.overlay,"theme:next",function(){d.next([d.model.cid]),a(".theme-header").find(".right").focus()}).listenTo(this.overlay,"theme:previous",function(){d.previous([d.model.cid]),a(".theme-header").find(".left").focus()})},next:function(a){var b,c,d=this;b=d.collection.get(a[0]),c=d.collection.at(d.collection.indexOf(b)+1),void 0!==c&&d.theme.trigger("theme:expand",c.cid)},previous:function(a){var b,c,d=this;b=d.collection.get(a[0]),c=d.collection.at(d.collection.indexOf(b)-1),void 0!==c&&d.theme.trigger("theme:expand",c.cid)}}),c.view.Search=wp.Backbone.View.extend({tagName:"input",className:"wp-filter-search",id:"wp-filter-search-input",searching:!1,attributes:{placeholder:b.searchPlaceholder,type:"search"},events:{keyup:"search",search:"search"},initialize:function(a){this.parent=a.parent,this.listenTo(this.parent,"theme:close",function(){this.searching=!1})},search:function(a){("keyup"!==a.type||9!==a.which&&16!==a.which)&&(this.collection=this.options.parent.view.collection,"keyup"===a.type&&27===a.which&&(a.target.value=""),_.debounce(_.bind(this.doSearch,this),300)(a.target.value))},doSearch:_.debounce(function(b){var d={};c.view.Installer.prototype.clearFilters(jQuery.Event("click")),d.search=b,"author:"===b.substring(0,7)&&(d.search="",d.author=b.slice(7)),"tag:"===b.substring(0,4)&&(d.search="",d.tag=[b.slice(4)]),a(".filter-links li > a.current").removeClass("current"),a("body").removeClass("show-filters filters-applied"),b?(c.utils.title(b),c.router.navigate(c.router.baseUrl(c.router.searchPath+b),{replace:!0})):(delete d.search,d.browse="featured",c.utils.title(a('.filter-links [data-sort="featured"]').text()),c.router.navigate(c.router.baseUrl(c.router.browsePath+"featured"),{replace:!0})),this.collection.query(d)},300)}),c.view.Installer=c.view.Appearance.extend({el:"#themes",events:{"click .filter-links li > a":"onSort","click .theme-filter":"onFilter","click .drawer-toggle":"moreFilters","click .filter-drawer .apply-filters":"applyFilters",'click .filter-group [type="checkbox"]':"addFilter","click .filter-drawer .clear-filters":"clearFilters","click .filtered-by":"backToFilters"},activeClass:"current",searchContainer:a(".wp-filter .search-form"),render:function(){var d=this;this.search(),this.collection=new c.Collection,this.listenTo(this,"theme:end",function(){d.collection.loadingThemes||(d.collection.loadingThemes=!0,d.collection.currentQuery.page++,_.extend(d.collection.currentQuery.request,{page:d.collection.currentQuery.page}),d.collection.query(d.collection.currentQuery.request))}),this.listenTo(this.collection,"query:success",function(){a("body").removeClass("loading-content"),a(".theme-browser").find("div.error").remove()}),this.listenTo(this.collection,"query:fail",function(){a("body").removeClass("loading-content"),a(".theme-browser").find("div.error").remove(),a(".theme-browser").find("div.themes").before('<div class="error"><p>'+b.error+"</p></div>")}),this.view&&this.view.remove(),this.view=new c.view.Themes({collection:this.collection,parent:this}),this.page=0,this.$el.find(".themes").remove(),this.view.render(),this.$el.find(".theme-browser").append(this.view.el).addClass("rendered")},browse:function(a){"favorites"==a?this.collection.query({browse:a,user:c.data.settings.favorites.user}):this.collection.query({browse:a})},onSort:function(b){var d=a(b.target),e=d.data("sort");b.preventDefault(),a("body").removeClass("filters-applied show-filters"),d.hasClass(this.activeClass)||(this.sort(e),c.router.navigate(c.router.baseUrl(c.router.browsePath+e)))},sort:function(b){var d=a('.filter-links [data-sort="'+b+'"]'),e=this;e.clearSearch(),_.each(a(".filter-group").find(":checkbox").filter(":checked"),function(b){return a(b).prop("checked",!1),e.filtersChecked()}),a(".filter-links li > a, .theme-filter").removeClass(this.activeClass),d.addClass(this.activeClass),c.utils.title(d.text()),this.browse(b)},onFilter:function(b){var c,d=a(b.target),e=d.data("filter");d.hasClass(this.activeClass)||(a(".filter-links li > a, .theme-section").removeClass(this.activeClass),d.addClass(this.activeClass),e&&(e=_.union([e,this.filtersChecked()]),c={tag:[e]},this.collection.query(c)))},addFilter:function(){this.filtersChecked()},applyFilters:function(b){var d,e=[],f=this.filtersChecked(),g={tag:f},h=a(".filtered-by .tags");b&&b.preventDefault(),f&&(a("body").addClass("filters-applied"),a(".filter-links li > a.current").removeClass("current"),h.empty(),_.each(f,function(b){d=a('label[for="filter-id-'+b+'"]').text(),e.push(d),h.append('<span class="tag">'+d+"</span>")}),c.router.navigate(c.router.baseUrl("tags/"+f.join("+"))),c.utils.title(e.join(", ")),this.collection.query(g))},filtersChecked:function(){var b=a(".filter-group").find(":checkbox").filter(":checked"),c=a(".filter-drawer"),d=[];return _.each(b,function(b){d.push(a(b).prop("value"))}),0===d.length?(c.find(".apply-filters").prop("disabled",!0).find("span").text(""),c.find(".clear-filters").hide(),a("body").removeClass("filters-applied"),!1):(c.find(".apply-filters").prop("disabled",!1).find("span").text(d.length),c.find(".clear-filters").css("display","inline-block"),d)},moreFilters:function(b){return b.preventDefault(),a("body").hasClass("filters-applied")?this.backToFilters():a("body").hasClass("show-filters")&&this.filtersChecked()?this.addFilter():(setTimeout(function(){var b=0;b=_.reduce(a(".filter-group"),function(b,c){return Math.max(b,a(c).outerHeight())},b),b>710&&a(".filter-group").outerHeight(b)},0),this.clearSearch(),void a("body").toggleClass("show-filters"))},clearFilters:function(b){var c=a(".filter-group").find(":checkbox"),d=this;b.preventDefault(),_.each(c.filter(":checked"),function(b){return a(b).prop("checked",!1),d.filtersChecked()})},backToFilters:function(b){b&&b.preventDefault(),a("body").removeClass("filters-applied")},clearSearch:function(){a("#wp-filter-search-input").val("")}}),c.Router=Backbone.Router.extend({routes:{"browse/:sort(/)":"sort","tags/:tag(/)":"tag","search/:query(/)":"search","author/:author(/)":"author",":slug(/)":"preview","":"sort"},baseUrl:function(a){return 0!==a.length&&(a+="/"),a},themePath:"",browsePath:"browse/",searchPath:"search/",search:function(b){a(".wp-filter-search").val(b)},navigate:function(){Backbone.history._hasPushState&&Backbone.Router.prototype.navigate.apply(this,arguments),"object"==typeof _gaq&&_gaq.push(["_trackPageview",c.data.settings.path+arguments[0]])}}),c.Run={init:function(){this.view=new c.view.Installer({section:"featured",SearchView:c.view.Search}),this.render()},render:function(){this.view.render(),this.routes(),Backbone.history.start({root:c.data.settings.path,pushState:!0,hashChange:!1})},routes:function(){var b=this,d={};c.router=new c.Router,c.router.on("route:preview",function(a){b.view.collection.queries.push(c.data.query),d.theme=a,b.view.collection.query(d),b.view.view.expand(a)}),c.router.on("route:sort",function(a){b.view.collection.queries.push(c.data.query),a||(a="featured"),b.view.sort(a),b.view.trigger("theme:close")}),c.router.on("route:search",function(){b.view.collection.queries.push(c.data.query),a(".wp-filter-search").focus().trigger("keyup"),b.view.trigger("theme:close")}),c.router.on("route:tag",function(d){b.view.collection.queries.push(c.data.query),_.each(d.split("+"),function(b){a("#filter-id-"+b).prop("checked",!0)}),a("body").removeClass("show-filters").addClass("show-filters"),b.view.applyFilters(),b.view.trigger("theme:close")}),c.router.on("route:author",function(a){b.view.collection.queries.push(c.data.query),d.author=a,b.view.collection.query(d),c.utils.title(a),b.view.trigger("theme:close")})}},a(function(){c.Run.init()})}(jQuery),function(a){a.load("visualization","1",{packages:["corechart"]})}(google);
Note: See TracChangeset for help on using the changeset viewer.