Changeset 3622
- Timestamp:
- 07/04/2016 09:28:48 AM (8 years ago)
- 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 166 166 /** 167 167 * 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 */ 172 function 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' ), 177 230 'orange' => __( 'Orange', 'wporg-themes' ), 178 'pink' => __( 'Pink', 231 'pink' => __( 'Pink', 'wporg-themes' ), 179 232 'purple' => __( 'Purple', 'wporg-themes' ), 180 'red' => __( 'Red', 233 'red' => __( 'Red', 'wporg-themes' ), 181 234 'silver' => __( 'Silver', 'wporg-themes' ), 182 'tan' => __( 'Tan', 183 'white' => __( 'White', 235 'tan' => __( 'Tan', 'wporg-themes' ), 236 'white' => __( 'White', 'wporg-themes' ), 184 237 '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' ), 191 252 '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( 223 260 'photoblogging' => __( 'Photoblogging', 'wporg-themes' ), 224 'seasonal' => __( 'Seasonal', 'wporg-themes' ), 225 ) 226 ); 261 'seasonal' => __( 'Seasonal', 'wporg-themes' ), 262 ) ); 263 } 264 265 return $features; 227 266 } 228 267 229 268 /** 230 269 * Returns an array of [ tag_slug => translated_tag_name] tags for translation within JS 270 * 271 * @return array List of features. 231 272 */ 232 273 function wporg_themes_get_tag_translations() { 233 274 $translations = array(); 234 foreach ( wporg_themes_get_feature_list( ) as $group => $tags ) {275 foreach ( wporg_themes_get_feature_list( 'all' ) as $group => $tags ) { 235 276 $translations = array_merge( $translations, $tags ); 236 277 } -
sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-themes/js/theme.js
r2539 r3622 1449 1449 } 1450 1450 1451 if ( ! tags ) { 1452 return; 1453 } 1454 1451 1455 $( 'body' ).addClass( 'filters-applied' ); 1452 1456 $( '.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);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;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.