@@ -5285,7 +5285,7 @@ angular.module("frontpress.filters", []);
5285
5285
5286
5286
"use strict" ;
5287
5287
5288
- angular . module ( "frontpress.views" , [ "frontpress.views.home" , "frontpress.views.post" , "frontpress.views.category" ] ) ;
5288
+ angular . module ( "frontpress.views" , [ "frontpress.views.home" , "frontpress.views.post" , "frontpress.views.category" , "frontpress.views.tag" ] ) ;
5289
5289
5290
5290
"use strict" ;
5291
5291
@@ -5400,6 +5400,18 @@ angular.module("frontpress.views.post",
5400
5400
5401
5401
"use strict" ;
5402
5402
5403
+ angular . module ( "frontpress.views.tag" ,
5404
+ [ "ui.router" ,
5405
+ "infinite-scroll" ,
5406
+ "frontpress.components.api-manager" ,
5407
+ "frontpress.components.pagination" ,
5408
+ "frontpress.components.list-posts" ,
5409
+ "frontpress.components.page-head" ,
5410
+ "frontpress.components.blog" ,
5411
+ "frontpress.components.frontpress-provider" ] ) ;
5412
+
5413
+ "use strict" ;
5414
+
5403
5415
function FeaturedImageDirective ( $FrontPress ) {
5404
5416
var directive = {
5405
5417
restrict : "E" ,
@@ -5740,6 +5752,24 @@ PostViewDirective.$inject = ["$FrontPress"];
5740
5752
5741
5753
"use strict" ;
5742
5754
5755
+ function TagViewDirective ( $FrontPress ) {
5756
+ var directive = {
5757
+ scope : { } ,
5758
+ templateUrl : $FrontPress . getTemplateUrl ( "views.tag" ) ,
5759
+ restrict : "AE" ,
5760
+ controllerAs : "vc" ,
5761
+ bindToController : true ,
5762
+ controller : "TagDirectiveController" ,
5763
+ replace : true
5764
+ } ;
5765
+ return directive ;
5766
+ }
5767
+
5768
+ angular . module ( "frontpress.views.tag" ) . directive ( "tagView" , TagViewDirective ) ;
5769
+ TagViewDirective . $inject = [ "$FrontPress" ] ;
5770
+
5771
+ "use strict" ;
5772
+
5743
5773
angular . module ( "infinite-scroll" ) . value ( "THROTTLE_MILLISECONDS" , 1000 ) ;
5744
5774
5745
5775
// this file is empty but you can override it using https://github.com/frontpressorg/frontpress-cli
@@ -5762,6 +5792,30 @@ TrustAsHtml.$inject = ["$sce"];
5762
5792
5763
5793
"use strict" ;
5764
5794
5795
+ function ApiManager ( ApiManagerMap ) {
5796
+ var service = {
5797
+ getPath : getPath
5798
+ } ;
5799
+
5800
+ return service ;
5801
+
5802
+ function getPath ( object , pathName ) {
5803
+ var result = object ;
5804
+ var path = ApiManagerMap [ pathName ] ;
5805
+
5806
+ for ( var i = 0 ; i < path . length ; i ++ ) {
5807
+ result = result [ path [ i ] ] ;
5808
+ }
5809
+
5810
+ return result ;
5811
+ }
5812
+ }
5813
+
5814
+ angular . module ( "frontpress.components.api-manager" ) . service ( "ApiManager" , ApiManager ) ;
5815
+ ApiManager . $inject = [ "ApiManagerMap" ] ;
5816
+
5817
+ "use strict" ;
5818
+
5765
5819
function AjaxModel ( $http ) {
5766
5820
function request ( url , params , method ) {
5767
5821
params = params || { } ;
@@ -5801,27 +5855,11 @@ AjaxModel.$inject = ["$http"];
5801
5855
5802
5856
"use strict" ;
5803
5857
5804
- function ApiManager ( ApiManagerMap ) {
5805
- var service = {
5806
- getPath : getPath
5807
- } ;
5808
-
5809
- return service ;
5810
-
5811
- function getPath ( object , pathName ) {
5812
- var result = object ;
5813
- var path = ApiManagerMap [ pathName ] ;
5814
-
5815
- for ( var i = 0 ; i < path . length ; i ++ ) {
5816
- result = result [ path [ i ] ] ;
5817
- }
5818
-
5819
- return result ;
5820
- }
5858
+ function FeaturedImageDirectiveController ( ) {
5859
+ var vc = this ;
5821
5860
}
5822
5861
5823
- angular . module ( "frontpress.components.api-manager" ) . service ( "ApiManager" , ApiManager ) ;
5824
- ApiManager . $inject = [ "ApiManagerMap" ] ;
5862
+ angular . module ( "frontpress.components.featured-image" ) . controller ( "FeaturedImageDirectiveController" , FeaturedImageDirectiveController ) ;
5825
5863
5826
5864
"use strict" ;
5827
5865
@@ -5898,14 +5936,6 @@ BlogModel.$inject = ["BlogApi", "$q", "ApiManager", "$FrontPress"];
5898
5936
5899
5937
"use strict" ;
5900
5938
5901
- function FeaturedImageDirectiveController ( ) {
5902
- var vc = this ;
5903
- }
5904
-
5905
- angular . module ( "frontpress.components.featured-image" ) . controller ( "FeaturedImageDirectiveController" , FeaturedImageDirectiveController ) ;
5906
-
5907
- "use strict" ;
5908
-
5909
5939
function FrontPressProvider ( $disqusProvider , $stateProvider , FrontPressConfigurationFile ) {
5910
5940
var configure = {
5911
5941
load : load ,
@@ -5975,6 +6005,8 @@ function FrontPressProvider($disqusProvider, $stateProvider, FrontPressConfigura
5975
6005
"home.pagination" : "/page/{pageNumber:[0-9]{1,}}" ,
5976
6006
"category" : "/category/{categoryName}" ,
5977
6007
"category.pagination" : "/category/{categoryName}/page/{pageNumber:[0-9]{1,}}" ,
6008
+ "tag" : "/tag/{categoryName}" ,
6009
+ "tag.pagination" : "/tag/{categoryName}/page/{pageNumber:[0-9]{1,}}" ,
5978
6010
"post" : "/:postSlug"
5979
6011
} ;
5980
6012
@@ -6018,6 +6050,7 @@ function FrontPressProvider($disqusProvider, $stateProvider, FrontPressConfigura
6018
6050
var defaultTemplateUrlList = {
6019
6051
"views.home" : "/js/views/home/templates/home.template.html" ,
6020
6052
"views.category" : "/js/views/category/templates/category.template.html" ,
6053
+ "views.tag" : "/js/views/category/templates/tag.template.html" ,
6021
6054
"views.post" : "/js/views/post/templates/post.template.html" ,
6022
6055
"components.fullpost" : "/js/components/full-post/templates/full-post.template.html" ,
6023
6056
"components.fullpost.categories" : "/js/components/full-post/templates/full-post-categories-list.template.html" ,
@@ -6034,7 +6067,7 @@ function FrontPressProvider($disqusProvider, $stateProvider, FrontPressConfigura
6034
6067
var defaultTitlesList = {
6035
6068
"home" : ":siteName" ,
6036
6069
"home.pagination" : ":siteName :pageNumber" ,
6037
- "post" : ":siteName - :postTitle" ,
6070
+ "post" : ":siteName - :postTitle"
6038
6071
} ;
6039
6072
6040
6073
switch ( configure . apiVersion ) {
@@ -6093,7 +6126,7 @@ function FrontPressProvider($disqusProvider, $stateProvider, FrontPressConfigura
6093
6126
_setHomeStates ( ) ;
6094
6127
_setPostStates ( ) ;
6095
6128
_setCategoryStates ( ) ;
6096
-
6129
+ _setTagStates ( ) ;
6097
6130
}
6098
6131
6099
6132
function _setHomeStates ( ) {
@@ -6126,13 +6159,24 @@ function FrontPressProvider($disqusProvider, $stateProvider, FrontPressConfigura
6126
6159
6127
6160
function _setCategoryStates ( ) {
6128
6161
6129
- var statePost = {
6162
+ var stateCategory = {
6130
6163
url : configure . routes . category ,
6131
6164
template : "<category-view></category-view>" ,
6132
6165
controller : "CategoryRouteController as vc"
6133
6166
} ;
6134
6167
6135
- $stateProvider . state ( "category" , statePost ) ;
6168
+ $stateProvider . state ( "category" , stateCategory ) ;
6169
+ }
6170
+
6171
+ function _setTagStates ( ) {
6172
+
6173
+ var stateTag = {
6174
+ url : configure . routes . tag ,
6175
+ template : "<tag-view></tag-view>" ,
6176
+ controller : "TagRouteController as vc"
6177
+ } ;
6178
+
6179
+ $stateProvider . state ( "tag" , stateTag ) ;
6136
6180
}
6137
6181
6138
6182
@@ -7044,14 +7088,94 @@ PostRouteController.$inject = [];
7044
7088
7045
7089
"use strict" ;
7046
7090
7047
- angular . module ( "frontpress.apis.api-manager-map" , [ ] ) ;
7091
+ function TagDirectiveController ( $stateParams , ListPostsModel , $state , $FrontPress , BlogModel , PageHeadModel , $location , PaginationModel ) {
7092
+ var vc = this ;
7093
+ vc . vm = ListPostsModel ;
7094
+ var firstNextPageNumber = 2 ;
7095
+ vc . loadMorePostsAndPaginate = loadMorePostsAndPaginate ;
7096
+ vc . isInfiniteScrollDisabled = ! $FrontPress . infiniteScroll ;
7097
+ PageHeadModel . init ( ) ;
7098
+
7099
+ var params = {
7100
+ pageSize : $FrontPress . pageSize ,
7101
+ pageNumber : $stateParams . pageNumber ? $stateParams . pageNumber : 1
7102
+ } ;
7103
+
7104
+ var loadPostsPromise = vc . vm . loadPosts ( params ) ;
7105
+
7106
+ loadPostsPromise . then ( function ( loadedPosts ) {
7107
+ var totalPagesNumber = ListPostsModel . totalPostsNumber / $FrontPress . pageSize ;
7108
+ PaginationModel . setLastPageNumber ( totalPagesNumber ) ;
7109
+ _setPaginationPages ( params . pageNumber ) ;
7110
+ if ( $FrontPress . apiVersion === "v2" ) {
7111
+ vc . vm . loadExternalFeaturedImages ( loadedPosts ) ;
7112
+ }
7113
+ } ) ;
7114
+
7115
+ function _setPageMetaData ( ) {
7116
+
7117
+ var blogInformationPromise = BlogModel . getInformationPromise ( ) ;
7118
+
7119
+ blogInformationPromise . then ( function ( blogInformation ) {
7120
+ var homeReplaceRules = {
7121
+ ":siteName" : blogInformation . name ,
7122
+ ":siteDescription" : blogInformation . description
7123
+ } ;
7124
+ PageHeadModel . parsePageTitle ( "home" , homeReplaceRules ) ;
7125
+
7126
+ } ) ;
7127
+
7128
+ var canonical = $location . absUrl ( ) . replace ( / \/ p a g e \/ [ 0 - 9 ] { 1 , } \/ ? / , "" ) ;
7129
+ PageHeadModel . setPageCanonical ( canonical ) ;
7130
+ }
7131
+
7132
+ _setPageMetaData ( ) ;
7133
+
7134
+ function loadMorePostsAndPaginate ( ) {
7135
+ params . pageNumber ++ ;
7136
+ var nextPageNumber = params . pageNumber ? params . pageNumber : firstNextPageNumber ;
7137
+ var paginationOptions = { notify : false } ;
7138
+ var loadPostsPromise = vc . vm . loadPosts ( params ) ;
7139
+
7140
+
7141
+ loadPostsPromise . then ( function ( loadedPosts ) {
7142
+ if ( $FrontPress . apiVersion === "v2" ) {
7143
+ vc . vm . loadExternalFeaturedImages ( loadedPosts ) ;
7144
+ }
7145
+ } ) ;
7146
+
7147
+ _setPageMetaData ( ) ;
7148
+ _setPaginationPages ( params . pageNumber ) ;
7149
+ $state . go ( "home-pagination" , { pageNumber : nextPageNumber } , paginationOptions ) ;
7150
+ }
7151
+
7152
+ function _setPaginationPages ( currentPageNumber ) {
7153
+ PaginationModel . generatePaginationFromCurrentPageNumber ( currentPageNumber ) ;
7154
+ }
7155
+ }
7156
+
7157
+ angular . module ( "frontpress.views.tag" ) . controller ( "TagDirectiveController" , TagDirectiveController ) ;
7158
+ TagDirectiveController . $inject = [ "$stateParams" , "ListPostsModel" , "$state" , "$FrontPress" , "BlogModel" , "PageHeadModel" , "$location" , "PaginationModel" ] ;
7159
+
7160
+ "use strict" ;
7161
+
7162
+ function TagRouteController ( ) {
7163
+ var vc = this ;
7164
+ }
7165
+
7166
+ angular . module ( "frontpress.views.tag" ) . controller ( "CategoryRouteController" , TagRouteController ) ;
7167
+ TagRouteController . $inject = [ ] ;
7048
7168
7049
7169
"use strict" ;
7050
7170
7051
7171
angular . module ( "frontpress.apis.blog" , [ "frontpress.components.ajax" , "frontpress.components.frontpress-provider" ] ) ;
7052
7172
7053
7173
"use strict" ;
7054
7174
7175
+ angular . module ( "frontpress.apis.api-manager-map" , [ ] ) ;
7176
+
7177
+ "use strict" ;
7178
+
7055
7179
angular . module ( "frontpress.apis.categories" , [ "frontpress.components.ajax" , "frontpress.components.frontpress-provider" , "frontpress.apis.configs-to-params" ] ) ;
7056
7180
7057
7181
"use strict" ;
@@ -7068,19 +7192,6 @@ angular.module("frontpress.apis.tags", ["frontpress.components.ajax", "frontpres
7068
7192
7069
7193
"use strict" ;
7070
7194
7071
- angular . module ( "frontpress.apis.api-manager-map" )
7072
- . constant ( "ApiManagerMap" , {
7073
- "totalPostsNumber" : [ "headers" , "X-WP-Total" ] ,
7074
- "allPostsPath" : [ "body" ] ,
7075
- "postTitle" : [ "title" , "rendered" ] ,
7076
- "postId" : [ "id" ] ,
7077
- "postDate" : [ "date" ] ,
7078
- "siteName" : [ "name" ] ,
7079
- "siteDescription" : [ "description" ]
7080
- } ) ;
7081
-
7082
- "use strict" ;
7083
-
7084
7195
function BlogApi ( AjaxModel , $FrontPress ) {
7085
7196
var baseUrl = $FrontPress . restApiUrl ;
7086
7197
@@ -7099,6 +7210,19 @@ angular.module("frontpress.apis.blog").factory("BlogApi", BlogApi);
7099
7210
BlogApi . $inject = [ "AjaxModel" , "$FrontPress" ] ;
7100
7211
7101
7212
7213
+ "use strict" ;
7214
+
7215
+ angular . module ( "frontpress.apis.api-manager-map" )
7216
+ . constant ( "ApiManagerMap" , {
7217
+ "totalPostsNumber" : [ "headers" , "X-WP-Total" ] ,
7218
+ "allPostsPath" : [ "body" ] ,
7219
+ "postTitle" : [ "title" , "rendered" ] ,
7220
+ "postId" : [ "id" ] ,
7221
+ "postDate" : [ "date" ] ,
7222
+ "siteName" : [ "name" ] ,
7223
+ "siteDescription" : [ "description" ]
7224
+ } ) ;
7225
+
7102
7226
"use strict" ;
7103
7227
7104
7228
function CategoriesApi ( AjaxModel , $FrontPress , ConfigsToParams ) {
0 commit comments