changed CHANGELOG.md
 
@@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
5
5
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
6
6
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
7
7
8
+ ## [0.3.1] - 2020-02-04
9
+
10
+ ### Updated
11
+
12
+ - Put plug options in private instead of assigns
13
+
8
14
## [0.3.0] - 2020-02-04
9
15
10
16
### Added
changed README.md
 
@@ -12,7 +12,7 @@ by adding `adminable` to your list of dependencies in `mix.exs`:
12
12
```elixir
13
13
def deps do
14
14
[
15
- {:adminable, "~> 0.3.0"}
15
+ {:adminable, "~> 0.3.1"}
16
16
]
17
17
end
18
18
```
changed hex_metadata.config
 
@@ -62,4 +62,4 @@
62
62
{<<"optional">>,false},
63
63
{<<"repository">>,<<"hexpm">>},
64
64
{<<"requirement">>,<<"~> 1.0">>}]]}.
65
- {<<"version">>,<<"0.3.0">>}.
65
+ {<<"version">>,<<"0.3.1">>}.
changed lib/adminable/admin_controller.ex
 
@@ -5,25 +5,25 @@ defmodule Adminable.AdminController do
5
5
import Plug.Conn
6
6
7
7
def dashboard(conn, _params) do
8
- schemas = Map.keys(conn.assigns.schemas)
8
+ schemas = Map.keys(conn.private.adminable_schemas)
9
9
10
10
opts = [
11
11
schemas: schemas
12
12
]
13
13
14
14
conn
15
- |> put_layout(conn.assigns.layout)
16
- |> put_view(conn.assigns.view_module)
15
+ |> put_layout(conn.private.adminable_layout)
16
+ |> put_view(conn.private.adminable_view_module)
17
17
|> render("dashboard.html", opts)
18
18
end
19
19
20
20
def index(conn, %{"schema" => schema} = params) do
21
- schema_module = conn.assigns.schemas[schema]
21
+ schema_module = conn.private.adminable_schemas[schema]
22
22
23
23
paginate_config = [
24
24
page_size: 20,
25
25
page: Map.get(params, "page", 1),
26
- module: conn.assigns.repo
26
+ module: conn.private.adminable_repo
27
27
]
28
28
29
29
page = Scrivener.paginate(schema_module, paginate_config)
 
@@ -39,13 +39,13 @@ defmodule Adminable.AdminController do
39
39
]
40
40
41
41
conn
42
- |> put_layout(conn.assigns.layout)
43
- |> put_view(conn.assigns.view_module)
42
+ |> put_layout(conn.private.adminable_layout)
43
+ |> put_view(conn.private.adminable_view_module)
44
44
|> render("index.html", opts)
45
45
end
46
46
47
47
def new(conn, %{"schema" => schema}) do
48
- schema_module = conn.assigns.schemas[schema]
48
+ schema_module = conn.private.adminable_schemas[schema]
49
49
50
50
model = struct(schema_module)
51
51
 
@@ -56,19 +56,19 @@ defmodule Adminable.AdminController do
56
56
]
57
57
58
58
conn
59
- |> put_layout(conn.assigns.layout)
60
- |> put_view(conn.assigns.view_module)
59
+ |> put_layout(conn.private.adminable_layout)
60
+ |> put_view(conn.private.adminable_view_module)
61
61
|> render("new.html", opts)
62
62
end
63
63
64
64
def create(conn, %{"schema" => schema, "data" => data}) do
65
- schema_module = conn.assigns.schemas[schema]
65
+ schema_module = conn.private.adminable_schemas[schema]
66
66
67
67
new_schema = struct(schema_module)
68
68
69
69
changeset = schema_module.create_changeset(new_schema, data)
70
70
71
- case conn.assigns.repo.insert(changeset) do
71
+ case conn.private.adminable_repo.insert(changeset) do
72
72
{:ok, _created} ->
73
73
conn
74
74
|> put_flash(:info, "#{String.capitalize(schema)} created!")
 
@@ -84,19 +84,19 @@ defmodule Adminable.AdminController do
84
84
conn
85
85
|> put_flash(:error, "#{String.capitalize(schema)} failed to create!")
86
86
|> put_status(:unprocessable_entity)
87
- |> put_layout(conn.assigns.layout)
88
- |> put_view(conn.assigns.view_module)
87
+ |> put_layout(conn.private.adminable_layout)
88
+ |> put_view(conn.private.adminable_view_module)
89
89
|> render("new.html", opts)
90
90
end
91
91
end
92
92
93
93
def edit(conn, %{"schema" => schema, "pk" => pk}) do
94
- schema_module = conn.assigns.schemas[schema]
94
+ schema_module = conn.private.adminable_schemas[schema]
95
95
96
96
model =
97
97
schema_module.__schema__(:associations)
98
- |> Enum.reduce(conn.assigns.repo.get(schema_module, pk), fn a, m ->
99
- conn.assigns.repo.preload(m, a)
98
+ |> Enum.reduce(conn.private.adminable_repo.get(schema_module, pk), fn a, m ->
99
+ conn.private.adminable_repo.preload(m, a)
100
100
end)
101
101
102
102
opts = [
 
@@ -107,19 +107,19 @@ defmodule Adminable.AdminController do
107
107
]
108
108
109
109
conn
110
- |> put_layout(conn.assigns.layout)
111
- |> put_view(conn.assigns.view_module)
110
+ |> put_layout(conn.private.adminable_layout)
111
+ |> put_view(conn.private.adminable_view_module)
112
112
|> render("edit.html", opts)
113
113
end
114
114
115
115
def update(conn, %{"schema" => schema, "pk" => pk, "data" => data}) do
116
- schema_module = conn.assigns.schemas[schema]
116
+ schema_module = conn.private.adminable_schemas[schema]
117
117
118
- item = conn.assigns.repo.get!(schema_module, pk)
118
+ item = conn.private.adminable_repo.get!(schema_module, pk)
119
119
120
120
changeset = schema_module.edit_changeset(item, data)
121
121
122
- case conn.assigns.repo.update(changeset) do
122
+ case conn.private.adminable_repo.update(changeset) do
123
123
{:ok, _updated_model} ->
124
124
conn
125
125
|> put_flash(:info, "#{String.capitalize(schema)} ID #{pk} updated!")
 
@@ -136,8 +136,8 @@ defmodule Adminable.AdminController do
136
136
conn
137
137
|> put_flash(:error, "#{String.capitalize(schema)} ID #{pk} failed to update!")
138
138
|> put_status(:unprocessable_entity)
139
- |> put_layout(conn.assigns.layout)
140
- |> put_view(conn.assigns.view_module)
139
+ |> put_layout(conn.private.adminable_layout)
140
+ |> put_view(conn.private.adminable_view_module)
141
141
|> render("edit.html", opts)
142
142
end
143
143
end
changed lib/adminable/plug.ex
 
@@ -47,11 +47,11 @@ defmodule Adminable.Plug do
47
47
|> Enum.into(%{})
48
48
49
49
conn
50
- |> Plug.Conn.assign(:otp_app, otp_app)
51
- |> Plug.Conn.assign(:repo, repo)
52
- |> Plug.Conn.assign(:schemas, schemas)
53
- |> Plug.Conn.assign(:layout, layout)
54
- |> Plug.Conn.assign(:view_module, view_module)
50
+ |> Plug.Conn.put_private(:adminable_otp_app, otp_app)
51
+ |> Plug.Conn.put_private(:adminable_repo, repo)
52
+ |> Plug.Conn.put_private(:adminable_schemas, schemas)
53
+ |> Plug.Conn.put_private(:adminable_layout, layout)
54
+ |> Plug.Conn.put_private(:adminable_view_module, view_module)
55
55
|> Adminable.Router.call(opts)
56
56
end
57
57
end
changed mix.exs
 
@@ -4,7 +4,7 @@ defmodule Adminable.MixProject do
4
4
def project do
5
5
[
6
6
app: :adminable,
7
- version: "0.3.0",
7
+ version: "0.3.1",
8
8
elixir: "~> 1.8",
9
9
start_permanent: Mix.env() == :prod,
10
10
deps: deps(),