Skip to content

Commit

Permalink
[#124] - Duplicates category view structure for tags
Browse files Browse the repository at this point in the history
  • Loading branch information
Jota Teles committed Jul 9, 2017
1 parent cf03c78 commit c94514b
Show file tree
Hide file tree
Showing 13 changed files with 467 additions and 92 deletions.
216 changes: 170 additions & 46 deletions release/frontpress.js
Original file line number Diff line number Diff line change
Expand Up @@ -5285,7 +5285,7 @@ angular.module("frontpress.filters", []);

"use strict";

angular.module("frontpress.views", ["frontpress.views.home", "frontpress.views.post", "frontpress.views.category"]);
angular.module("frontpress.views", ["frontpress.views.home", "frontpress.views.post", "frontpress.views.category", "frontpress.views.tag"]);

"use strict";

Expand Down Expand Up @@ -5400,6 +5400,18 @@ angular.module("frontpress.views.post",

"use strict";

angular.module("frontpress.views.tag",
["ui.router",
"infinite-scroll",
"frontpress.components.api-manager",
"frontpress.components.pagination",
"frontpress.components.list-posts",
"frontpress.components.page-head",
"frontpress.components.blog",
"frontpress.components.frontpress-provider"]);

"use strict";

function FeaturedImageDirective($FrontPress){
var directive = {
restrict: "E",
Expand Down Expand Up @@ -5740,6 +5752,24 @@ PostViewDirective.$inject = ["$FrontPress"];

"use strict";

function TagViewDirective($FrontPress){
var directive = {
scope: {},
templateUrl: $FrontPress.getTemplateUrl("views.tag"),
restrict: "AE",
controllerAs: "vc",
bindToController: true,
controller: "TagDirectiveController",
replace: true
};
return directive;
}

angular.module("frontpress.views.tag").directive("tagView", TagViewDirective);
TagViewDirective.$inject = ["$FrontPress"];

"use strict";

angular.module("infinite-scroll").value("THROTTLE_MILLISECONDS", 1000);

// this file is empty but you can override it using https://github.com/frontpressorg/frontpress-cli
Expand All @@ -5762,6 +5792,30 @@ TrustAsHtml.$inject = ["$sce"];

"use strict";

function ApiManager(ApiManagerMap){
var service = {
getPath: getPath
};

return service;

function getPath(object, pathName){
var result = object;
var path = ApiManagerMap[pathName];

for(var i=0; i < path.length; i++){
result = result[path[i]];
}

return result;
}
}

angular.module("frontpress.components.api-manager").service("ApiManager", ApiManager);
ApiManager.$inject = ["ApiManagerMap"];

"use strict";

function AjaxModel($http) {
function request(url, params, method) {
params = params || {};
Expand Down Expand Up @@ -5801,27 +5855,11 @@ AjaxModel.$inject = ["$http"];

"use strict";

function ApiManager(ApiManagerMap){
var service = {
getPath: getPath
};

return service;

function getPath(object, pathName){
var result = object;
var path = ApiManagerMap[pathName];

for(var i=0; i < path.length; i++){
result = result[path[i]];
}

return result;
}
function FeaturedImageDirectiveController(){
var vc = this;
}

angular.module("frontpress.components.api-manager").service("ApiManager", ApiManager);
ApiManager.$inject = ["ApiManagerMap"];
angular.module("frontpress.components.featured-image").controller("FeaturedImageDirectiveController", FeaturedImageDirectiveController);

"use strict";

Expand Down Expand Up @@ -5898,14 +5936,6 @@ BlogModel.$inject = ["BlogApi", "$q", "ApiManager", "$FrontPress"];

"use strict";

function FeaturedImageDirectiveController(){
var vc = this;
}

angular.module("frontpress.components.featured-image").controller("FeaturedImageDirectiveController", FeaturedImageDirectiveController);

"use strict";

function FrontPressProvider($disqusProvider, $stateProvider, FrontPressConfigurationFile){
var configure = {
load: load,
Expand Down Expand Up @@ -5975,6 +6005,8 @@ function FrontPressProvider($disqusProvider, $stateProvider, FrontPressConfigura
"home.pagination": "/page/{pageNumber:[0-9]{1,}}",
"category": "/category/{categoryName}",
"category.pagination": "/category/{categoryName}/page/{pageNumber:[0-9]{1,}}",
"tag": "/tag/{categoryName}",
"tag.pagination": "/tag/{categoryName}/page/{pageNumber:[0-9]{1,}}",
"post": "/:postSlug"
};

Expand Down Expand Up @@ -6018,6 +6050,7 @@ function FrontPressProvider($disqusProvider, $stateProvider, FrontPressConfigura
var defaultTemplateUrlList = {
"views.home": "/js/views/home/templates/home.template.html",
"views.category": "/js/views/category/templates/category.template.html",
"views.tag": "/js/views/category/templates/tag.template.html",
"views.post": "/js/views/post/templates/post.template.html",
"components.fullpost": "/js/components/full-post/templates/full-post.template.html",
"components.fullpost.categories": "/js/components/full-post/templates/full-post-categories-list.template.html",
Expand All @@ -6034,7 +6067,7 @@ function FrontPressProvider($disqusProvider, $stateProvider, FrontPressConfigura
var defaultTitlesList = {
"home": ":siteName",
"home.pagination": ":siteName :pageNumber",
"post": ":siteName - :postTitle",
"post": ":siteName - :postTitle"
};

switch(configure.apiVersion){
Expand Down Expand Up @@ -6093,7 +6126,7 @@ function FrontPressProvider($disqusProvider, $stateProvider, FrontPressConfigura
_setHomeStates();
_setPostStates();
_setCategoryStates();

_setTagStates();
}

function _setHomeStates(){
Expand Down Expand Up @@ -6126,13 +6159,24 @@ function FrontPressProvider($disqusProvider, $stateProvider, FrontPressConfigura

function _setCategoryStates(){

var statePost = {
var stateCategory = {
url: configure.routes.category,
template: "<category-view></category-view>",
controller: "CategoryRouteController as vc"
};

$stateProvider.state("category", statePost);
$stateProvider.state("category", stateCategory);
}

function _setTagStates(){

var stateTag = {
url: configure.routes.tag,
template: "<tag-view></tag-view>",
controller: "TagRouteController as vc"
};

$stateProvider.state("tag", stateTag);
}


Expand Down Expand Up @@ -7044,14 +7088,94 @@ PostRouteController.$inject = [];

"use strict";

angular.module("frontpress.apis.api-manager-map", []);
function TagDirectiveController($stateParams, ListPostsModel, $state, $FrontPress, BlogModel, PageHeadModel, $location, PaginationModel){
var vc = this;
vc.vm = ListPostsModel;
var firstNextPageNumber = 2;
vc.loadMorePostsAndPaginate = loadMorePostsAndPaginate;
vc.isInfiniteScrollDisabled = !$FrontPress.infiniteScroll;
PageHeadModel.init();

var params = {
pageSize: $FrontPress.pageSize,
pageNumber: $stateParams.pageNumber ? $stateParams.pageNumber : 1
};

var loadPostsPromise = vc.vm.loadPosts(params);

loadPostsPromise.then(function(loadedPosts){
var totalPagesNumber = ListPostsModel.totalPostsNumber / $FrontPress.pageSize;
PaginationModel.setLastPageNumber(totalPagesNumber);
_setPaginationPages(params.pageNumber);
if($FrontPress.apiVersion === "v2"){
vc.vm.loadExternalFeaturedImages(loadedPosts);
}
});

function _setPageMetaData(){

var blogInformationPromise = BlogModel.getInformationPromise();

blogInformationPromise.then(function(blogInformation){
var homeReplaceRules = {
":siteName": blogInformation.name,
":siteDescription": blogInformation.description
};
PageHeadModel.parsePageTitle("home", homeReplaceRules);

});

var canonical = $location.absUrl().replace(/\/page\/[0-9]{1,}\/?/, "");
PageHeadModel.setPageCanonical(canonical);
}

_setPageMetaData();

function loadMorePostsAndPaginate(){
params.pageNumber++;
var nextPageNumber = params.pageNumber ? params.pageNumber : firstNextPageNumber;
var paginationOptions = {notify: false};
var loadPostsPromise = vc.vm.loadPosts(params);


loadPostsPromise.then(function(loadedPosts){
if($FrontPress.apiVersion === "v2"){
vc.vm.loadExternalFeaturedImages(loadedPosts);
}
});

_setPageMetaData();
_setPaginationPages(params.pageNumber);
$state.go("home-pagination", {pageNumber: nextPageNumber}, paginationOptions);
}

function _setPaginationPages(currentPageNumber){
PaginationModel.generatePaginationFromCurrentPageNumber(currentPageNumber);
}
}

angular.module("frontpress.views.tag").controller("TagDirectiveController", TagDirectiveController);
TagDirectiveController.$inject = ["$stateParams", "ListPostsModel", "$state", "$FrontPress", "BlogModel", "PageHeadModel", "$location", "PaginationModel"];

"use strict";

function TagRouteController(){
var vc = this;
}

angular.module("frontpress.views.tag").controller("CategoryRouteController", TagRouteController);
TagRouteController.$inject = [];

"use strict";

angular.module("frontpress.apis.blog", ["frontpress.components.ajax", "frontpress.components.frontpress-provider"]);

"use strict";

angular.module("frontpress.apis.api-manager-map", []);

"use strict";

angular.module("frontpress.apis.categories", ["frontpress.components.ajax", "frontpress.components.frontpress-provider", "frontpress.apis.configs-to-params"]);

"use strict";
Expand All @@ -7068,19 +7192,6 @@ angular.module("frontpress.apis.tags", ["frontpress.components.ajax", "frontpres

"use strict";

angular.module("frontpress.apis.api-manager-map")
.constant("ApiManagerMap", {
"totalPostsNumber": ["headers","X-WP-Total"],
"allPostsPath": ["body"],
"postTitle": ["title", "rendered"],
"postId": ["id"],
"postDate": ["date"],
"siteName": ["name"],
"siteDescription": ["description"]
});

"use strict";

function BlogApi(AjaxModel, $FrontPress) {
var baseUrl = $FrontPress.restApiUrl;

Expand All @@ -7099,6 +7210,19 @@ angular.module("frontpress.apis.blog").factory("BlogApi", BlogApi);
BlogApi.$inject = ["AjaxModel", "$FrontPress"];


"use strict";

angular.module("frontpress.apis.api-manager-map")
.constant("ApiManagerMap", {
"totalPostsNumber": ["headers","X-WP-Total"],
"allPostsPath": ["body"],
"postTitle": ["title", "rendered"],
"postId": ["id"],
"postDate": ["date"],
"siteName": ["name"],
"siteDescription": ["description"]
});

"use strict";

function CategoriesApi(AjaxModel, $FrontPress, ConfigsToParams){
Expand Down
6 changes: 3 additions & 3 deletions release/frontpress.min.js

Large diffs are not rendered by default.

0 comments on commit c94514b

Please sign in to comment.