mirror of
https://github.com/mattermost/mattermost-mobile.git
synced 2026-11-14 15:10:17 +00:00
* Add repeat_type/repeat_timezone to scheduled posts data layer Mirrors server support for weekly recurring scheduled posts (mattermost#37746): - ScheduledPost schema v21 with repeat_type/repeat_timezone columns + migration - ScheduledPostModel fields, toApi() now round-trips repeat fields and the previously-dropped type field (PUT is a full overwrite server-side) - Transformer copies repeat fields and overwrites error_code instead of merging, so a recurring post that recovers clears its error state - updateScheduledPost takes UpdateSchedulingInfo so reschedule can change recurrence; weekly requires a timezone at compile time Co-authored-by: Nick Misasi <nick13misasi@gmail.com> * Add Repeat weekly toggle to scheduling and reschedule screens Gated on server >= 11.10 (no feature flag; older servers silently ignore the repeat fields). The scheduled-post options sheet and the reschedule screen share getScheduledPostRecurrence(), which resolves the recurrence timezone (manual > automatic > UTC) matching the webapp. Rescheduling a weekly post pre-checks the toggle; unchecking converts it to one-time. Co-authored-by: Nick Misasi <nick13misasi@gmail.com> * Show Repeats weekly tag and hide Send for recurring scheduled posts Scheduled-post rows show an info tag next to the Send on... header when the post repeats weekly and is not in an error state, matching the webapp. The Send option is absent for recurring posts (sending now would end or fork the series), and the options sheet height is now derived from the same booleans that drive rendering. isRecurringScheduledPost() is the canonical recurrence predicate in @utils/scheduled_post. Co-authored-by: Nick Misasi <nick13misasi@gmail.com> * Gate recurring scheduled posts on feature flag and disallow attachments The server PR now gates recurrence behind the default-off FeatureFlagRecurringScheduledPosts flag (only the off-to-weekly transition is blocked when disabled) and rejects weekly posts with file attachments, since files are bound to the first post they are attached to. Replace the version gate with the flag check and hide the Repeat weekly toggle when the draft has attachments; when the toggle is not offered, the reschedule save omits the recurrence fields so an existing series is preserved. Co-authored-by: Nick Misasi <nick13misasi@gmail.com> * Address CodeRabbit review feedback - Gate the picker's recurrence payload on the toggle actually being offered, closing a race where the feature flag flips off while the sheet is open; add a regression test - Use the real isScheduledPostModel predicate in the model round-trip test instead of mocking it - Cover the automatic-timezone branch of getScheduledPostRecurrence - Align new picker tests with the advanceTimers helper, use nullish coalescing for raw.type, and fix test names to the should... format Co-authored-by: Nick Misasi <nick13misasi@gmail.com> * Refresh cached scheduled posts whose recurrence differs from the server Rows cached before the repeat columns existed hold '' until the server bumps update_at, which could leave a weekly post looking one-time (and ending the series on reschedule) for up to a week. Co-authored-by: Nick Misasi <nick13misasi@gmail.com> * Hide the channel and thread scheduled post indicator for recurring-only posts Matches the webapp: a weekly series never leaves the list, so the indicator only shows when at least one one-time post is scheduled. The thread count now also excludes errored posts, like the channel count. Co-authored-by: Nick Misasi <nick13misasi@gmail.com> --------- Co-authored-by: Matty Code <mattycode@mattycode-1.com> Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: mattermost-code <matty-code@mattermost.com> |
||
|---|---|---|
| .. | ||
| am.json | ||
| ar-SA.json | ||
| ar.json | ||
| be.json | ||
| bg.json | ||
| bn.json | ||
| br.json | ||
| ca.json | ||
| cs.json | ||
| da.json | ||
| de.json | ||
| el.json | ||
| en_AU.json | ||
| en.json | ||
| es.json | ||
| et.json | ||
| eu.json | ||
| fa.json | ||
| fi.json | ||
| fil.json | ||
| fr.json | ||
| fy.json | ||
| gl.json | ||
| gu.json | ||
| he.json | ||
| hi.json | ||
| hr.json | ||
| hu.json | ||
| id.json | ||
| is.json | ||
| it.json | ||
| ja.json | ||
| ka.json | ||
| kk_Latn.json | ||
| kk.json | ||
| km.json | ||
| ko.json | ||
| la.json | ||
| lo.json | ||
| lt.json | ||
| lv.json | ||
| mk.json | ||
| ml.json | ||
| mn.json | ||
| nb_NO.json | ||
| ne.json | ||
| nl.json | ||
| pl.json | ||
| pr.json | ||
| pt-BR.json | ||
| pt.json | ||
| ro.json | ||
| ru.json | ||
| si.json | ||
| sl.json | ||
| sq.json | ||
| sr.json | ||
| sv.json | ||
| th.json | ||
| tr.json | ||
| uk.json | ||
| vi.json | ||
| zh-CN.json | ||
| zh-TW.json | ||