PluginProbe
OpenStation: Desktop Windows, Dock & Virtual Desktops for WP Admin / 1.1.10
OpenStation: Desktop Windows, Dock & Virtual Desktops for WP Admin v1.1.10
1.1.10 1.1.9 1.1.8 1.1.7 1.1.6 1.1.5 1.1.4 1.1.3 1.1.2 1.1.1 1.1.0 1.0.1 1.0.0 0.9.8 0.9.7 0.9.6 0.9.4 0.9.5 0.9.3 0.9.2 0.9.1 0.9.0 0.8.9 0.8.8 0.8.7 All 34 releases
← All changes | includes/os-settings.php +37 -1 1.1.81.1.10 View file →
@@ -93,8 +93,10 @@
93 93 */
94 94 function openstation_default_os_settings() {
95 95 return array(
96 96 'wallpaper' => 'galaxy',
97 + // Pulse, the brand's signature. Mirrors `DEFAULTS` in
98 + // `src/settings/constants.ts`.
97 99 'accent' => 'pulse',
98 100 // Only read when `accent` is `custom`. Seeded with Pulse so
99 101 // picking Custom before touching the wheel is a no-op rather
100 102 // than a jump to black. Mirrors `DEFAULTS` in
@@ -210,8 +212,13 @@
210 212 // window (e.g. array( 'author', 'tags' )). Empty array means
211 213 // every column is visible. The sticky 'title' column is always
212 214 // shown — the UI prevents toggling it.
213 215 'nativePostsHiddenColumns' => array(),
216 + // Per-user list of column keys hidden in the native Pages
217 + // window (e.g. array( 'author', 'parent' )). Empty array means
218 + // every column is visible. The sticky 'title' column is always
219 + // shown — the UI prevents toggling it.
220 + 'nativePagesHiddenColumns' => array(),
214 221 // Per-user opt-IN for the native Pages window. Same posture as
215 222 // nativePostsEnabled — defaults OFF (Beta), users opt in to swap
216 223 // the classic `edit.php?post_type=page` iframe for the native UI.
217 224 'nativePagesEnabled' => false,
@@ -253,8 +260,10 @@
253 260 // the wallpaper, settles onto nearby windows, and watches the
254 261 // pointer. Off by default; toggled from the wallpaper context
255 262 // menu. Per-user. See `docs/mio.md`.
256 263 'mioEnabled' => false,
264 + 'mioApiEnabled' => false,
265 + 'mioShowOnWallpaper' => true,
257 266 // The user's own Mio, as built in "Make it yours": partial
258 267 // appearance + silhouette overrides, both empty until they
259 268 // touch a control. Stored per user rather than per browser
260 269 // because it is a preference about the person — ten minutes
@@ -776,8 +785,27 @@
776 785 // user meta indefinitely.
777 786 $native_posts_hidden_columns = array_slice( array_values( array_unique( $native_posts_hidden_columns ) ), 0, 32 );
778 787 }
779 788
789 + $native_pages_hidden_columns = $defaults['nativePagesHiddenColumns'];
790 + if ( isset( $raw['nativePagesHiddenColumns'] ) && is_array( $raw['nativePagesHiddenColumns'] ) ) {
791 + $native_pages_hidden_columns = array();
792 + foreach ( $raw['nativePagesHiddenColumns'] as $col ) {
793 + if ( ! is_string( $col ) || '' === $col ) {
794 + continue;
795 + }
796 + $slug = sanitize_key( $col );
797 + if ( '' === $slug ) {
798 + continue;
799 + }
800 + $native_pages_hidden_columns[] = $slug;
801 + }
802 + // Cap to a sane upper bound — far more than any plausible
803 + // column count, but blocks a malicious payload from bloating
804 + // user meta indefinitely.
805 + $native_pages_hidden_columns = array_slice( array_values( array_unique( $native_pages_hidden_columns ) ), 0, 32 );
806 + }
807 +
780 808 $native_pages_enabled = isset( $raw['nativePagesEnabled'] )
781 809 ? (bool) $raw['nativePagesEnabled']
782 810 : $defaults['nativePagesEnabled'];
783 811
@@ -812,9 +840,9 @@
812 840 : $defaults['confirmCloseAllWindows'];
813 841
814 842 $mio_enabled = isset( $raw['mioEnabled'] )
815 843 ? (bool) $raw['mioEnabled']
816 - : $defaults['mioEnabled'];
844 + : ( isset( $raw['mioApiEnabled'] ) ? (bool) $raw['mioApiEnabled'] : $defaults['mioEnabled'] );
817 845
818 846 // A missing key means "no look saved yet", which sanitizes to the
819 847 // same pair of empty arrays the defaults carry — so this needs no
820 848 // isset() branch of its own.
@@ -1000,8 +1028,9 @@
1000 1028 'heartbeatRate' => $heartbeat_rate,
1001 1029 'nativePostsEnabled' => $native_posts_enabled,
1002 1030 'nativePostsHiddenColumns' => $native_posts_hidden_columns,
1003 1031 'nativePagesEnabled' => $native_pages_enabled,
1032 + 'nativePagesHiddenColumns' => $native_pages_hidden_columns,
1004 1033 'nativeUsersEnabled' => $native_users_enabled,
1005 1034 'nativePluginsEnabled' => $native_plugins_enabled,
1006 1035 'nativeCommentsEnabled' => $native_comments_enabled,
1007 1036 'stationHomeEnabled' => $station_home_enabled,
@@ -1009,8 +1038,10 @@
1009 1038 'windowPrewarmEnabled' => $window_prewarm_enabled,
1010 1039 'showDesktopOnWallpaperClick' => $show_desktop_on_wallpaper_click,
1011 1040 'confirmCloseAllWindows' => $confirm_close_all_windows,
1012 1041 'mioEnabled' => $mio_enabled,
1042 + 'mioApiEnabled' => $mio_enabled,
1043 + 'mioShowOnWallpaper' => isset( $raw['mioShowOnWallpaper'] ) ? (bool) $raw['mioShowOnWallpaper'] : $defaults['mioShowOnWallpaper'],
1013 1044 'mioStyle' => $mio_style,
1014 1045 'showPostStatusRibbons' => $show_post_status_ribbons,
1015 1046 'developerModeEnabled' => $developer_mode_enabled,
1016 1047 'foldersSharingEnabled' => $folders_sharing_enabled,
@@ -1118,8 +1149,13 @@
1118 1149 // true of every path into this handler, not just the ones the
1119 1150 // schema happens to guard.
1120 1151 if ( ! is_array( $payload ) ) {
1121 1152 return rest_ensure_response( openstation_get_os_settings( $user_id ) );
1153 + }
1154 +
1155 + // Normalize an alias-only patch before merging it with the saved master value.
1156 + if ( ! array_key_exists( 'mioEnabled', $payload ) && array_key_exists( 'mioApiEnabled', $payload ) ) {
1157 + $payload['mioEnabled'] = $payload['mioApiEnabled'];
1122 1158 }
1123 1159
1124 1160 openstation_save_os_settings(
1125 1161 $user_id,