Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
99 commits
Select commit Hold shift + click to select a range
5c12fed
Remove legacy blogging code and harden publishing module
mdon Mar 14, 2026
d3fa2b8
Update module system guide
mdon Mar 14, 2026
bb27fce
Refactor publishing module into focused submodules
mdon Mar 14, 2026
abff416
Move group creation from settings to publishing interface
mdon Mar 14, 2026
28d9ea6
Remove group management and language info from publishing settings
mdon Mar 14, 2026
f9096b3
Move group edit from settings to publishing interface
mdon Mar 14, 2026
b2e6db6
Simplify primary language update to single DB query
mdon Mar 14, 2026
5a0b2d5
Replace file-era sequential DB operations with bulk queries
mdon Mar 14, 2026
8e66ebe
Make editor autosave near-instant to prevent data loss
mdon Mar 14, 2026
1166eca
Remove migration modal UI from index and listing templates
mdon Mar 14, 2026
591bd06
Fix broken template refs and stale routes after migration simplification
mdon Mar 14, 2026
7af6f50
Fix edit-group route ordering — must come before :group param route
mdon Mar 14, 2026
c7a562c
Move require Logger to module top in edit.ex
mdon Mar 14, 2026
08fa6f0
Add soft-delete (trash) support for publishing groups and posts
mdon Mar 14, 2026
4ff5552
Add trash/restore UI to publishing dashboard
mdon Mar 14, 2026
7b40be6
Reduce tab size and top padding on active/trashed tabs
mdon Mar 14, 2026
e167099
Reduce spacing above and below active/trashed tabs
mdon Mar 14, 2026
7999884
Reduce vertical spacing between stats, tabs, and cards
mdon Mar 14, 2026
e3cebfa
Remove top-level stats bar from publishing dashboard
mdon Mar 14, 2026
8000274
Remove count badge from Trash tab
mdon Mar 14, 2026
812ad9d
Block public access to trashed group content
mdon Mar 14, 2026
9d518c7
Fix trashed group navigation and make trash view non-interactive
mdon Mar 14, 2026
b36489f
Fix listing PubSub to redirect to index when group is trashed
mdon Mar 14, 2026
a667a4f
Rename "Languages" to "Languages used" on group cards
mdon Mar 14, 2026
1e0ff48
Simplify group card stats to Posts and Published only
mdon Mar 14, 2026
3ab17c7
Make languages list collapsible on group cards
mdon Mar 14, 2026
60afe2a
Remove unnecessary text from new group page
mdon Mar 14, 2026
1f2bb8c
Hide public URLs for non-published content in admin
mdon Mar 14, 2026
0f3137f
Add load-more pagination and remove post count from admin listing
mdon Mar 14, 2026
465a88f
Add TODO for smart load-more threshold
mdon Mar 14, 2026
7af0e5c
Add active/trashed tabs and trash/restore for posts in group listing
mdon Mar 14, 2026
b99a928
Replace active/trashed tabs with full status filter tabs for posts
mdon Mar 14, 2026
b5916a7
Fix status tab crash — use mapper-converted maps for all views
mdon Mar 14, 2026
5e0b0ad
Remove scheduled status and add future-date visibility filter
mdon Mar 14, 2026
7d44461
Fix uuid_format? falsely matching timestamp strings as UUIDs
mdon Mar 14, 2026
c98315d
Fix atom/string mode comparison throughout publishing module
mdon Mar 14, 2026
5cf9322
Auto-publish translations when primary language is published
mdon Mar 14, 2026
8c2f8b4
Rename "View" to "Public" on group cards
mdon Mar 14, 2026
3d4c504
Make mode badges smaller on group cards
mdon Mar 14, 2026
6b255a3
Make status tabs dynamic — hide empty tabs, hide bar if only 1 tab
mdon Mar 15, 2026
0af10ee
Fix listing showing draft posts in published tab on initial load
mdon Mar 15, 2026
4969433
Update stale fixer for new statuses and full group scanning
mdon Mar 15, 2026
4748e3a
Add content-level fixes to stale fixer and enforce primary-published …
mdon Mar 15, 2026
8a34596
Simplify translation visibility to post-level status only
mdon Mar 15, 2026
61ac99f
Show "Follows primary language" instead of status value for translations
mdon Mar 15, 2026
8920f6c
Fix group not preloaded after stale fixer re-read
mdon Mar 15, 2026
c134580
Replace translation status field with visibility indicator
mdon Mar 15, 2026
18f75b5
Improve translation visibility indicator with 3 states
mdon Mar 15, 2026
7213f38
Add subtitle under primary status selector about translations
mdon Mar 15, 2026
afbe37d
Stack Language, Primary, and Version rows vertically
mdon Mar 15, 2026
574176e
Fix Language label wrapping onto its own row
mdon Mar 15, 2026
adf7801
Fix language switcher taking full width — use inline-flex
mdon Mar 15, 2026
a14ee5d
Remove flex-wrap from Language row so label stays inline
mdon Mar 15, 2026
2d6e020
Run stale fixer in background when group listing loads
mdon Mar 15, 2026
ee05882
Auto-trash empty posts in stale fixer
mdon Mar 15, 2026
f09aa8a
Default to first tab with posts instead of always published
mdon Mar 15, 2026
e81d2a7
Fix preview double-escaping HTML content
mdon Mar 15, 2026
6a05c27
Modernize preview — use DB read instead of token-embedded content
mdon Mar 15, 2026
f55eb57
Use path-based UUID for preview URL instead of query param
mdon Mar 15, 2026
dae3530
Put post's primary language first in public translation switcher
mdon Mar 15, 2026
0035a40
Fix public URL not updating when slug changes in editor form
mdon Mar 15, 2026
2609a74
Refresh public URL after save completes
mdon Mar 15, 2026
cb85cdc
Fix publishing listing page refresh issues and stale status counts
mdon Mar 15, 2026
10ca999
Add inline status control to publishing listing post cards
mdon Mar 15, 2026
11317de
Add clear translation button to publishing editor
mdon Mar 15, 2026
9e8139d
Add skeleton loading placeholders to publishing editor and listing
mdon Mar 15, 2026
06399df
Fix listing skeleton placeholders using broken DaisyUI skeleton class
mdon Mar 15, 2026
ec1bc61
Add skeleton loading to publishing index and listing tab switches
mdon Mar 15, 2026
06cea91
Hard-delete empty posts instead of trashing them
mdon Mar 15, 2026
748d4d8
Fix group slug overwrite on name-only edit and remove folder references
mdon Mar 15, 2026
3a84c88
Keep current tab when changing post status on listing page
mdon Mar 15, 2026
e8bde54
Show clear translation button when DB row exists, not just body content
mdon Mar 15, 2026
69caa83
Exclude trashed posts from public access and fix fallback redirect
mdon Mar 15, 2026
1d20229
Improve trashed posts display and load full metadata for trash tab
mdon Mar 15, 2026
4ab8cea
Make publishing buttons responsive on mobile screens
mdon Mar 15, 2026
aec0560
Filter trashed posts from URL slug lookups
mdon Mar 15, 2026
6710ff1
Fix trashed post data integrity issues found in audit
mdon Mar 15, 2026
77dc87e
Update publishing README with new admin UI features and corrected del…
mdon Mar 15, 2026
a890324
Fix credo complexity and dialyzer warnings in publishing module
mdon Mar 15, 2026
9acb20d
Remove TODO comment that fails credo strict check
mdon Mar 15, 2026
c6d49f1
Fix language route constraint to accept BCP-47 dialect codes
mdon Mar 15, 2026
19f50b7
Pass current version to preview URL to preserve version context
mdon Mar 15, 2026
d6ef89f
Fix infinite redirect loop between dialect and base language codes
mdon Mar 15, 2026
20088ff
Standardize all locale regex patterns to support BCP-47 codes
mdon Mar 15, 2026
ed674c1
Fall back to slug lookup when date-only URL has no timestamp posts
mdon Mar 15, 2026
ce4a827
Sync post mode with group mode in stale fixer
mdon Mar 15, 2026
326c401
Auto-generate slug on mode change and reconcile status on restore
mdon Mar 15, 2026
0a0e0ef
Fix atom vs string mode comparison in cache lookups and URL builders
mdon Mar 15, 2026
ed2869f
Improve error handling for silent failures in publishing module
mdon Mar 15, 2026
b7a7ece
Code review fixes: aliases, duplication, and empty post safety
mdon Mar 15, 2026
7b813a5
Revert empty_post? status restriction — delete all truly empty posts
mdon Mar 15, 2026
704674e
Fix blank page on public blog posts in Phoenix 1.8+ parent apps
mdon Mar 15, 2026
b78187b
Revert put_layout false — double-wrap fix is parent app responsibility
mdon Mar 15, 2026
dab6e84
Fix translated blog URLs returning 302 for base language codes
mdon Mar 15, 2026
30933ad
Fix resolve_content returning wrong language for base codes
mdon Mar 15, 2026
5a5fd20
Add post title to public post template
mdon Mar 15, 2026
73b9f9e
Fix dialyzer warning for redundant nil check in slug generation
mdon Mar 15, 2026
5b9234b
Extract hardcoded status, mode, and type values into Publishing.Const…
mdon Mar 16, 2026
0b28539
Consolidate remaining duplicated values and helpers in publishing module
mdon Mar 16, 2026
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
15 changes: 8 additions & 7 deletions .dialyzer_ignore.exs
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@
{"lib/mix/tasks/phoenix_kit.update.ex", :unknown_function},
{"lib/mix/tasks/phoenix_kit.gen.admin_page.ex", :unknown_function},
{"lib/mix/tasks/phoenix_kit.gen.dashboard_tab.ex", :unknown_function},
{"lib/mix/tasks/phoenix_kit.migrate_blog_versions.ex", :unknown_function},
{"lib/mix/tasks/phoenix_kit.migrate_blogging_to_publishing.ex", :unknown_function},
# Conditional compilation pattern match in update.ex (Code.ensure_loaded?)
{"lib/mix/tasks/phoenix_kit.update.ex", :pattern_match, 1},
{"lib/mix/tasks/phoenix_kit.modernize_layouts.ex", :unknown_function},
Expand Down Expand Up @@ -61,22 +59,25 @@
{"lib/mix/tasks/phoenix_kit.sync_email_status.ex", :callback_info_missing, 1},
{"lib/mix/tasks/phoenix_kit.fix_missing_events.ex", :callback_info_missing, 1},
{"lib/mix/tasks/phoenix_kit.process_sqs.ex", :callback_info_missing, 1},
{"lib/mix/tasks/phoenix_kit.migrate_blog_versions.ex", :callback_info_missing, 1},
{"lib/mix/tasks/phoenix_kit.migrate_blogging_to_publishing.ex", :callback_info_missing, 1},
{"lib/mix/tasks/phoenix_kit.cleanup_orphaned_files.ex", :callback_info_missing, 1},

# False positive pattern match warnings (runtime behavior differs from static analysis)
{"lib/mix/tasks/phoenix_kit/email_cleanup.ex", :pattern_match, 1},
{"lib/mix/tasks/phoenix_kit.migrate_blogging_to_publishing.ex", :pattern_match_cov},

# Publishing module defensive fallbacks and settings_call dynamic dispatch
{"lib/modules/publishing/publishing.ex", :guard_fail},
{"lib/modules/publishing/publishing.ex", :pattern_match_cov},
{"lib/modules/publishing/publishing.ex", :pattern_match},
{"lib/modules/publishing/shared.ex", :guard_fail},
# ExAws library type definition issues (false positives from incomplete type specs)
~r/lib\/modules\/emails\/archiver\.ex:.*pattern_match/,
~r/lib\/modules\/emails\/archiver\.ex:.*unused_fun/,

# Ecto.Multi opaque type false positives (code works correctly)
~r/lib\/phoenix_kit\/users\/auth\.ex:.*call_without_opaque/,

# Legal module - dynamic dispatch to Blogging module
# Dialyzer can't infer types through blogging_module() helper
# Legal module - dynamic dispatch to Publishing module
# Dialyzer can't infer types through publishing_module() helper
~r/lib\/modules\/legal\/legal\.ex:.*pattern_match/,

# ConsentLog schema - changeset type spec with empty struct
Expand Down
Loading
Loading