Packages
phoenix_kit
1.7.96
1.7.207
1.7.206
1.7.205
1.7.204
1.7.203
1.7.202
1.7.201
1.7.200
1.7.199
1.7.198
1.7.197
1.7.196
1.7.194
1.7.193
1.7.192
1.7.191
1.7.190
1.7.189
1.7.187
1.7.186
1.7.185
1.7.184
1.7.183
1.7.182
1.7.181
1.7.180
1.7.179
1.7.178
1.7.177
1.7.176
1.7.175
1.7.174
1.7.173
1.7.172
1.7.171
1.7.170
1.7.169
1.7.168
1.7.167
1.7.166
1.7.165
1.7.164
1.7.162
1.7.161
1.7.160
1.7.159
1.7.157
1.7.156
1.7.155
1.7.154
1.7.153
1.7.152
1.7.151
1.7.150
1.7.149
1.7.146
1.7.145
1.7.144
1.7.143
1.7.138
1.7.133
1.7.132
1.7.131
1.7.130
1.7.128
1.7.126
1.7.125
1.7.121
1.7.120
1.7.119
1.7.118
1.7.117
1.7.116
1.7.115
1.7.114
1.7.113
1.7.112
1.7.111
1.7.110
1.7.109
1.7.108
1.7.107
1.7.106
1.7.105
1.7.104
1.7.103
1.7.102
1.7.101
1.7.100
1.7.99
1.7.98
1.7.97
1.7.96
1.7.95
1.7.94
1.7.93
1.7.92
1.7.91
1.7.90
1.7.89
1.7.88
1.7.87
1.7.86
1.7.85
1.7.84
1.7.83
1.7.82
1.7.81
1.7.80
1.7.79
1.7.78
1.7.77
1.7.76
1.7.75
1.7.74
1.7.71
1.7.70
1.7.69
1.7.66
1.7.65
1.7.64
1.7.63
1.7.62
1.7.61
1.7.59
1.7.58
1.7.57
1.7.56
1.7.55
1.7.54
1.7.53
1.7.52
1.7.51
1.7.49
1.7.44
1.7.43
1.7.42
1.7.41
1.7.39
1.7.38
1.7.37
1.7.36
1.7.34
1.7.33
1.7.31
1.7.30
1.7.29
1.7.28
1.7.27
1.7.26
1.7.25
1.7.24
1.7.23
1.7.22
1.7.21
1.7.20
1.7.19
1.7.18
1.7.17
1.7.16
1.7.15
1.7.14
1.7.13
1.7.12
1.7.11
1.7.10
1.7.9
1.7.8
1.7.7
1.7.6
1.7.5
1.7.4
1.7.3
1.7.2
1.7.1
1.7.0
1.6.20
1.6.19
1.6.18
1.6.17
1.6.16
1.6.15
1.6.14
1.6.13
1.6.12
1.6.11
1.6.10
1.6.9
1.6.8
1.6.7
1.6.6
1.6.5
1.6.4
1.6.3
1.5.2
1.5.1
1.5.0
1.4.9
1.4.8
1.4.7
1.4.6
1.4.5
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.3.2
1.3.1
1.3.0
1.2.10
1.2.9
1.2.8
1.2.7
1.2.5
1.2.4
1.2.2
1.2.1
1.2.0
1.1.0
1.0.0
A foundation for building Elixir Phoenix apps — SaaS, social networks, ERP systems, marketplaces, and more
Current section
221 Versions
Jump to
Current section
221 Versions
Compare versions
19
files changed
+309
additions
-159
deletions
| @@ -1,3 +1,25 @@ | |
| 1 | + ## 1.7.96 - 2026-04-13 |
| 2 | + |
| 3 | + ### Added |
| 4 | + - Sortable languages in admin (drag-and-drop reorder) |
| 5 | + - option on DraggableList component |
| 6 | + - Wiggle animation for reorder mode with prefers-reduced-motion support |
| 7 | + |
| 8 | + ### Changed |
| 9 | + - Dedup language codes in reorder, use MapSet for lookup |
| 10 | + - Extract wiggle CSS to JS-injected styles with pk- prefix |
| 11 | + |
| 12 | + ## 1.7.96 - 2026-04-13 |
| 13 | + |
| 14 | + ### Added |
| 15 | + - Sortable languages in admin (drag-and-drop reorder) |
| 16 | + - hide_source option on DraggableList component |
| 17 | + - Wiggle animation for reorder mode with prefers-reduced-motion support |
| 18 | + |
| 19 | + ### Changed |
| 20 | + - Dedup language codes in reorder, use MapSet for lookup |
| 21 | + - Extract wiggle CSS to JS-injected styles with pk- prefix |
| 22 | + |
| 1 23 | ## 1.7.95 - 2026-04-11 |
| 2 24 | |
| 3 25 | ### Added |
| @@ -1,6 +1,6 @@ | |
| 1 1 | {<<"links">>,[{<<"GitHub">>,<<"https://github.com/BeamLabEU/phoenix_kit">>}]}. |
| 2 2 | {<<"name">>,<<"phoenix_kit">>}. |
| 3 | - {<<"version">>,<<"1.7.95">>}. |
| 3 | + {<<"version">>,<<"1.7.96">>}. |
| 4 4 | {<<"description">>, |
| 5 5 | <<65,32,102,111,117,110,100,97,116,105,111,110,32,102,111,114,32,98,117,105, |
| 6 6 | 108,100,105,110,103,32,69,108,105,120,105,114,32,80,104,111,101,110,105, |
| @@ -1146,6 +1146,35 @@ defmodule PhoenixKit.Modules.Languages do | |
| 1146 1146 | end |
| 1147 1147 | end |
| 1148 1148 | |
| 1149 | + @doc """ |
| 1150 | + Reorders languages to match the given list of codes. |
| 1151 | + |
| 1152 | + Languages not in `ordered_codes` keep their current position at the end. |
| 1153 | + """ |
| 1154 | + def reorder_languages(ordered_codes) when is_list(ordered_codes) do |
| 1155 | + current_config = Settings.get_json_setting(@config_key, @default_config) |
| 1156 | + current_languages = Map.get(current_config, "languages", []) |
| 1157 | + |
| 1158 | + lang_by_code = Map.new(current_languages, &{&1["code"], &1}) |
| 1159 | + ordered_set = MapSet.new(ordered_codes) |
| 1160 | + |
| 1161 | + ordered = |
| 1162 | + ordered_codes |
| 1163 | + |> Enum.uniq() |
| 1164 | + |> Enum.map(&Map.get(lang_by_code, &1)) |
| 1165 | + |> Enum.reject(&is_nil/1) |
| 1166 | + |
| 1167 | + remaining = Enum.reject(current_languages, &MapSet.member?(ordered_set, &1["code"])) |
| 1168 | + |
| 1169 | + updated_languages = ordered ++ remaining |
| 1170 | + updated_config = Map.put(current_config, "languages", updated_languages) |
| 1171 | + |
| 1172 | + case Settings.update_json_setting_with_module(@config_key, updated_config, @module_name) do |
| 1173 | + {:ok, _setting} -> {:ok, updated_config} |
| 1174 | + {:error, changeset} -> {:error, changeset} |
| 1175 | + end |
| 1176 | + end |
| 1177 | + |
| 1149 1178 | ## --- Private Helper Functions --- |
| 1150 1179 | |
| 1151 1180 | # Update a language at a specific index with proper default handling |
| @@ -87,7 +87,7 @@ defmodule PhoenixKit.Modules.Maintenance do | |
| 87 87 | false |
| 88 88 | """ |
| 89 89 | def enabled? do |
| 90 | - Settings.get_boolean_setting("maintenance_enabled", false) |
| 90 | + Settings.get_boolean_setting("maintenance_module_enabled", false) |
| 91 91 | end |
| 92 92 | |
| 93 93 | @impl PhoenixKit.Module |
| @@ -54,14 +54,14 @@ defmodule PhoenixKit.Config do | |
| 54 54 | id: :orders, |
| 55 55 | label: "My Orders", |
| 56 56 | icon: "hero-shopping-bag", |
| 57 | - path: "/dashboard/orders", |
| 57 | + path: "orders", |
| 58 58 | priority: 100 |
| 59 59 | }, |
| 60 60 | %{ |
| 61 61 | id: :notifications, |
| 62 62 | label: "Notifications", |
| 63 63 | icon: "hero-bell", |
| 64 | - path: "/dashboard/notifications", |
| 64 | + path: "notifications", |
| 65 65 | priority: 200, |
| 66 66 | badge: %{type: :count, value: 0, color: :error} |
| 67 67 | } |
Loading more files…