Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 12 additions & 14 deletions app/controllers/web/BlogController.cfc
Original file line number Diff line number Diff line change
Expand Up @@ -29,20 +29,18 @@ component extends="app.Controllers.Controller" {
// Expose statuses to view (controller methods aren't available in views)
statuses = blogStatuses();

var statusCountsQuery = model("Blog").findAll(
select = "statusId, COUNT(*) as cnt",
where = "createdBy = #userId# AND blog_posts.statusId <> #statuses.TRASH#",
group = "statusId",
returnAs = "query"
);

statusCounts = {"all" = 0, "draft" = 0, "published" = 0, "pending" = 0};
for (var row in statusCountsQuery) {
statusCounts.all += row.cnt;
if (row.statusId == statuses.DRAFT) statusCounts.draft = row.cnt;
else if (row.statusId == statuses.POSTED) statusCounts.published = row.cnt;
else if (row.statusId == statuses.PENDING_REVIEW) statusCounts.pending = row.cnt;
}
// Count blogs for each status using ORM
var draftCount = model("Blog").count(where = "createdBy = #userId# AND statusId = #statuses.DRAFT#");
var publishedCount = model("Blog").count(where = "createdBy = #userId# AND statusId = #statuses.POSTED#");
var pendingCount = model("Blog").count(where = "createdBy = #userId# AND statusId = #statuses.PENDING_REVIEW#");
var allCount = draftCount + publishedCount + pendingCount;

statusCounts = {
"all" = allCount,
"draft" = draftCount,
"published" = publishedCount,
"pending" = pendingCount
};

var where = "createdBy = #userId# AND blog_posts.statusId <> #statuses.TRASH#";
if (statusFilter == "draft") {
Expand Down
18 changes: 9 additions & 9 deletions app/views/web/BlogController/myPosts.cfm
Original file line number Diff line number Diff line change
Expand Up @@ -29,37 +29,37 @@ function statusBadgeClass(statusId) {
</div>

<!--- Status filter tabs --->
<ul class="nav nav-pills mb-4 gap-2">
<ul class="nav nav-pills mb-4 gap-2 p-3 rounded-4 border border--lightGray bg-white">
<li class="nav-item">
<a
href="#urlFor(route = 'my-posts')#"
class="nav-link<cfif statusFilter eq 'all'>active bg--primary<cfelse>text--secondary border border--primary</cfif>"
class="nav-link rounded-pill px-4 py-2<cfif statusFilter eq 'all'> active bg--primary text-white border border--primary<cfelse> bg-white text--secondary border border--primary</cfif>"
>
All <span class="badge bg-white text-dark ms-1">#statusCounts.all#</span>
All <span class="badge bg-white text-dark ms-2">#statusCounts.all#</span>
</a>
</li>
<li class="nav-item">
<a
href="#urlFor(route = 'my-posts')#?status=draft"
class="nav-link<cfif statusFilter eq 'draft'>active bg--primary<cfelse>text--secondary border border--primary</cfif>"
class="nav-link rounded-pill px-4 py-2<cfif statusFilter eq 'draft'> active bg--primary text-white border border--primary<cfelse> bg-white text--secondary border border--primary</cfif>"
>
Drafts <span class="badge bg-white text-dark ms-1">#statusCounts.draft#</span>
Drafts <span class="badge bg-white text-dark ms-2">#statusCounts.draft#</span>
</a>
</li>
<li class="nav-item">
<a
href="#urlFor(route = 'my-posts')#?status=published"
class="nav-link<cfif statusFilter eq 'published'>active bg--primary<cfelse>text--secondary border border--primary</cfif>"
class="nav-link rounded-pill px-4 py-2<cfif statusFilter eq 'published'> active bg--primary text-white border border--primary<cfelse> bg-white text--secondary border border--primary</cfif>"
>
Published <span class="badge bg-white text-dark ms-1">#statusCounts.published#</span>
Published <span class="badge bg-white text-dark ms-2">#statusCounts.published#</span>
</a>
</li>
<li class="nav-item">
<a
href="#urlFor(route = 'my-posts')#?status=pending"
class="nav-link<cfif statusFilter eq 'pending'>active bg--primary<cfelse>text--secondary border border--primary</cfif>"
class="nav-link rounded-pill px-4 py-2<cfif statusFilter eq 'pending'> active bg--primary text-white border border--primary<cfelse> bg-white text--secondary border border--primary</cfif>"
>
Pending Review <span class="badge bg-white text-dark ms-1">#statusCounts.pending#</span>
Pending Review <span class="badge bg-white text-dark ms-2">#statusCounts.pending#</span>
</a>
</li>
</ul>
Expand Down
Loading