143 Commits

Author SHA1 Message Date
jmiller dfd64b01ee docs(changelog): note admin menu short-name constant (#255)
Generic: Project CI / Lint & Validate (pull_request) Has been cancelled
Generic: Project CI / Tests (pull_request) Has been cancelled
Universal: PR Check / Branch Policy (pull_request) Has been cancelled
Universal: PR Check / Require Docs Update (pull_request) Has been cancelled
Universal: PR Check / Wiki Update Reminder (pull_request) Has been cancelled
Universal: PR Check / Secret Scan (pull_request) Has been cancelled
Universal: PR Check / Validate PR (pull_request) Has been cancelled
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Has been cancelled
Branch Cleanup / Delete merged branch (pull_request) Has been cancelled
RC Revert / Rename rc/ back to dev/ (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Claude-Session: https://claude.ai/code/session_01B9aZHSWbiiZykJD88pYx8R
2026-07-12 16:35:07 -05:00
gitea-actions[bot] ee116b3d94 chore: promote changelog [Unreleased] → [01.13.00] 2026-06-29 14:10:30 +00:00
gitea-actions[bot] db673be542 chore(release): build 01.13.00 [skip ci] 2026-06-29 14:10:25 +00:00
jmiller 437189830f feat: add social image generator with GD text overlay (#157)
Universal: PR Check / Branch Policy (pull_request) Successful in 3s
Universal: PR Check / Validate PR (pull_request) Failing after 7s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Failing after 3s
Universal: PR Check / Secret Scan (pull_request) Successful in 9s
Universal: Auto Version Bump / Version Bump (push) Successful in 18s
Generic: Project CI / Lint & Validate (pull_request) Successful in 27s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 43s
Generic: Project CI / Tests (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Replace complex multi-platform compositing with simpler spec-compliant
implementation:
- SocialImageHelper: 1200x630 OG images with solid background, title
  overlay using TTF fonts (or GD fallback), and site name watermark
- SocialImageController: AJAX endpoint with CSRF + ACL checks
- Config: enabled toggle, bg/text color, font size, show site name
- Content plugin: Generate Social Image button in Share Content panel
- Saves to media/com_mokosuitecross/social/ with SHA-256 filename

Authored-by: Moko Consulting
2026-06-29 06:33:17 -05:00
jmiller 1aa58e1d8d feat: add social image generator with GD-based OG image compositing (#157)
Replace basic single-size OG image generation with full-featured
multi-platform social image compositing:

- Platform-specific canvas sizes: Facebook 1200x630, Twitter 1200x675,
  Instagram 1080x1080, Stories 1080x1920
- Vertical linear gradient fallback when no source image available
- Semi-transparent overlay with configurable color and opacity (0-100%)
- Logo placement in top-right corner, auto-scaled to 15% of canvas width
- TTF text rendering with word wrap and text shadow for readability
- GD bitmap font fallback when no TTF fonts are available
- Configurable text position: top, center, or bottom
- Output to images/mokosuitecross/{articleId}_{platform}.jpg
- Cache clearing per article via clearCache() method
- ImageController AJAX endpoint with platform parameter validation
- Full config fieldset: enabled toggle, overlay color/opacity,
  text color/position, gradient start/end, logo upload

Authored-by: Moko Consulting
2026-06-29 06:32:18 -05:00
gitea-actions[bot] eda0d222ed chore: promote changelog [Unreleased] → [01.12.00] 2026-06-28 19:37:02 +00:00
gitea-actions[bot] 1627841983 chore(release): build 01.12.00 [skip ci] 2026-06-28 19:36:58 +00:00
gitea-actions[bot] 96f789dcec chore(version): pre-release bump to 01.11.03-dev [skip ci] 2026-06-28 19:27:29 +00:00
jmiller c6ab0cc438 docs: add Joomla 6 event fix to changelog, update Joomla version target
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Universal: PR Check / Validate PR (pull_request) Failing after 6s
Universal: PR Check / Secret Scan (pull_request) Successful in 7s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 11s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 1s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Failing after 6s
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
- Add content plugin AfterSaveEvent fix to CHANGELOG under Fixed
- Update README to reflect Joomla 6 target (not 5/6)
- Replace em-dashes with ASCII dashes in CHANGELOG

Authored-by: Moko Consulting
2026-06-28 14:25:10 -05:00
gitea-actions[bot] c552a12a0e chore(version): pre-release bump to 01.11.02-dev [skip ci] 2026-06-28 18:47:14 +00:00
gitea-actions[bot] ed5a143439 chore(version): pre-release bump to 01.11.01-dev [skip ci]
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 2s
2026-06-28 18:45:54 +00:00
gitea-actions[bot] acef5eb3a3 chore(version): pre-release bump to 01.08.61-dev [skip ci] 2026-06-28 17:10:30 +00:00
jmiller 9905d1e634 chore: clean up CHANGELOG formatting and add missing features
Universal: PR Check / Branch Policy (pull_request) Successful in 2s
Universal: PR Check / Validate PR (pull_request) Failing after 7s
Universal: PR Check / Secret Scan (pull_request) Successful in 8s
Branch Cleanup / Delete merged branch (pull_request) Successful in 2s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 18s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 42s
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
- Fix duplicate section headers for 01.07.00, 01.05.00, 01.04.01
- Move format description and version comment to top of file
- Replace em-dash with ASCII double-dash (Gitea UTF-8 compat)
- Add missing entries: link shortening (#159), site frontend (#133),
  social preview (#156), PHPUnit test suite (#132)

Authored-by: Moko Consulting
2026-06-28 12:08:38 -05:00
gitea-actions[bot] 47594c963d chore(version): pre-release bump to 01.08.58-dev [skip ci] 2026-06-28 17:05:20 +00:00
gitea-actions[bot] ee581032c3 chore(version): pre-release bump to 01.08.57-dev [skip ci]
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Failing after 2s
2026-06-28 17:04:22 +00:00
jmiller 3d567353c9 fix: PreviewController IDOR + update README and CHANGELOG
- Add ACL check and parameterized query to PreviewController
- Filter articles by user view access levels
- Update README with new features (AI captions, social preview, OG image
  gen, link shortening, post calendar, analytics)
- Update Nostr status from stub to implemented
- Add security fix entry to CHANGELOG

Authored-by: Moko Consulting
2026-06-28 12:02:24 -05:00
gitea-actions[bot] 8e7381e3ea chore(version): pre-release bump to 01.08.56-dev [skip ci] 2026-06-28 16:58:10 +00:00
gitea-actions[bot] dba61e3e0c chore(version): auto-bump patch 01.08.55-dev [skip ci]
Branch Cleanup / Delete merged branch (pull_request) Successful in 1s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
2026-06-28 16:57:47 +00:00
jmiller 9c2dd1bdde feat(#165): add posting analytics with best-time heatmap
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Universal: PR Check / Validate PR (pull_request) Failing after 5s
Universal: PR Check / Secret Scan (pull_request) Successful in 6s
Universal: Auto Version Bump / Version Bump (push) Successful in 12s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 36s
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
- AnalyticsHelper: posting heatmap (7x24 grid), best times ranking,
  per-service breakdown with success rates
- AnalyticsController: AJAX endpoint for dynamic heatmap filtering
- Analytics HtmlView: toolbar, dashboard link, submenu integration
- Template: heatmap table with color intensity, best times cards,
  service breakdown table, service/period filters
- 16 new language strings for analytics UI

Authored-by: Moko Consulting
Closes #165
2026-06-28 11:57:02 -05:00
gitea-actions[bot] ee49fbbaa6 chore(version): pre-release bump to 01.08.54-dev [skip ci] 2026-06-28 16:50:13 +00:00
jmiller b6202a6a40 feat: add visual post calendar admin view (#160)
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Universal: PR Check / Secret Scan (pull_request) Successful in 4s
Universal: PR Check / Validate PR (pull_request) Failing after 3s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Universal: Auto Version Bump / Version Bump (push) Successful in 8s
Branch Cleanup / Delete merged branch (pull_request) Successful in 1s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 28s
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Add a monthly calendar grid view to the admin component showing
scheduled, queued, and posted cross-posts with color-coded status
badges. Includes month-by-month navigation and today highlighting.

New files:
- CalendarController, CalendarModel, Calendar HtmlView, calendar template

Modified files:
- MokoSuiteCrossHelper: added Calendar to submenu
- Language file: added calendar strings
- CHANGELOG.md: documented new feature

Authored-by: Moko Consulting
2026-06-28 11:49:23 -05:00
gitea-actions[bot] 0c2074f801 chore(version): pre-release bump to 01.08.53-dev [skip ci] 2026-06-28 16:45:59 +00:00
gitea-actions[bot] a169ea4967 chore(version): auto-bump patch 01.08.52-dev [skip ci]
Branch Cleanup / Delete merged branch (pull_request) Successful in 1s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
2026-06-28 16:43:40 +00:00
jmiller d951d86b3a feat: add social image generator with PHP GD for OG images (#157)
Universal: Auto Version Bump / Version Bump (push) Successful in 8s
- SocialImageHelper: generates 1200x630 OG images with title overlay
- SocialImageController: AJAX endpoint to generate from article data
- Config fields: bg color, text color, overlay style, site name override
- Supports background image scaling, dark/light overlay, TTF fonts

Closes #157
Authored-by: Moko Consulting
2026-06-28 11:43:09 -05:00
gitea-actions[bot] b03c7c6ba7 chore(version): pre-release bump to 01.08.51-dev [skip ci] 2026-06-28 16:29:19 +00:00
gitea-actions[bot] 9e38609fe9 chore(version): pre-release bump to 01.08.50-dev [skip ci]
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 1s
2026-06-28 16:29:10 +00:00
gitea-actions[bot] 4d758890a8 chore(version): pre-release bump to 01.08.49-dev [skip ci] 2026-06-28 16:25:20 +00:00
jmiller 307eb7741d feat: add TikTok video upload and photo carousel support (#164)
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Universal: PR Check / Secret Scan (pull_request) Successful in 5s
Universal: PR Check / Validate PR (pull_request) Failing after 4s
Universal: Auto Version Bump / Version Bump (push) Successful in 9s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 29s
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
- Video publishing via PULL_FROM_URL with async status polling
- Photo carousel up to 35 images via content/init endpoint
- Configurable posting mode: DIRECT_POST or MEDIA_UPLOAD
- Audit warning language string for unverified app limitations
- Updated getSupportedMediaTypes() to include carousel

Authored-by: Moko Consulting
2026-06-28 11:24:23 -05:00
gitea-actions[bot] 4a13ea6ade chore(version): pre-release bump to 01.08.47-dev [skip ci] 2026-06-28 16:23:21 +00:00
gitea-actions[bot] 4ce96dc95b chore(version): auto-bump patch 01.08.46-dev [skip ci]
Branch Cleanup / Delete merged branch (pull_request) Successful in 2s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
2026-06-28 16:22:43 +00:00
jmiller 99e4a83ed5 feat: add AI caption generation with Claude and OpenAI support (#161)
Universal: Auto Version Bump / Version Bump (push) Successful in 7s
- AiGeneratorHelper: Claude Messages API and OpenAI Chat Completions
  with structured JSON output for social/short/chat/email_subject
- AiController: AJAX endpoint with CSRF and ACL checks
- config.xml: new AI fieldset (provider, API key, model, tone)
- Content plugin: "Generate with AI" button in Share Content panel
- Language strings for all AI config and UI elements

Authored-by: Moko Consulting
2026-06-28 11:21:56 -05:00
gitea-actions[bot] 63c4fbcd14 chore(version): pre-release bump to 01.08.45-dev [skip ci] 2026-06-28 16:15:30 +00:00
gitea-actions[bot] 6f29c077e2 chore(version): pre-release bump to 01.08.44-dev [skip ci] 2026-06-28 16:14:39 +00:00
gitea-actions[bot] 843c729828 chore(version): pre-release bump to 01.08.43-dev [skip ci] 2026-06-28 16:12:35 +00:00
gitea-actions[bot] a247a5fd0e chore(version): pre-release bump to 01.08.41-dev [skip ci] 2026-06-28 16:10:55 +00:00
gitea-actions[bot] 290284a0c9 chore(version): pre-release bump to 01.08.40-dev [skip ci] 2026-06-28 15:37:03 +00:00
gitea-actions[bot] c9eff72278 chore(version): pre-release bump to 01.08.39-dev [skip ci] 2026-06-28 15:36:43 +00:00
jmiller a86686c30a Merge pull request 'feat: add Twitter thread support and cost warning' (#194) from feature/163-twitter-threads into dev
Universal: Auto Version Bump / Version Bump (push) Has been skipped
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 18s
2026-06-28 15:36:22 +00:00
gitea-actions[bot] bed05630ca chore(version): auto-bump patch 01.08.38-dev [skip ci]
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 2s
2026-06-28 15:36:09 +00:00
jmiller 831223f7bc feat: add Twitter thread support and cost warning (#163)
Universal: PR Check / Branch Policy (pull_request) Successful in 2s
Universal: PR Check / Validate PR (pull_request) Failing after 7s
Universal: PR Check / Secret Scan (pull_request) Successful in 10s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 16s
Branch Cleanup / Delete merged branch (pull_request) Successful in 2s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Universal: Auto Version Bump / Version Bump (push) Successful in 13s
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Authored-by: Moko Consulting
2026-06-28 08:04:10 -05:00
jmiller 0428904ae8 feat: add Facebook Reels, Stories, and scheduled post support (#162)
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Universal: PR Check / Validate PR (pull_request) Failing after 7s
Universal: PR Check / Secret Scan (pull_request) Successful in 10s
Universal: Auto Version Bump / Version Bump (push) Successful in 18s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 54s
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Authored-by: Moko Consulting
2026-06-28 08:04:02 -05:00
gitea-actions[bot] 4cfde99e7f chore(version): pre-release bump to 01.08.37-dev [skip ci] 2026-06-28 08:37:47 +00:00
gitea-actions[bot] 1e105d6c7b chore(version): auto-bump patch 01.08.36-dev [skip ci] 2026-06-28 08:37:31 +00:00
gitea-actions[bot] 5cb6dd8008 chore(version): pre-release bump to 01.08.35-dev [skip ci] 2026-06-28 08:36:43 +00:00
gitea-actions[bot] 2264b00828 chore(version): auto-bump patch 01.08.34-dev [skip ci] 2026-06-28 08:36:27 +00:00
gitea-actions[bot] fc23c771c0 chore(version): pre-release bump to 01.08.33-dev [skip ci] 2026-06-28 08:35:44 +00:00
gitea-actions[bot] 96299a6b9a chore(version): auto-bump patch 01.08.32-dev [skip ci] 2026-06-28 08:35:29 +00:00
gitea-actions[bot] 14f5407820 chore(version): pre-release bump to 01.08.31-dev [skip ci] 2026-06-28 08:31:16 +00:00
gitea-actions[bot] 407b30a437 chore(version): pre-release bump to 01.08.30-dev [skip ci] 2026-06-28 08:30:11 +00:00
gitea-actions[bot] 1f7329272d chore(version): pre-release bump to 01.08.29-dev [skip ci] 2026-06-28 08:28:41 +00:00