Current section

37 Versions

Jump to

Compare versions

7 files changed
+63 additions
-52 deletions
  @@ -63,13 +63,18 @@
63 63 </tr>
64 64
65 65 <tr><td><h4>Changelog</h4></td></tr>
66 + <tr>
67 + <td><strong>0.3.1</strong></td>
68 + - Fixes issue #155 [pr #156](https://github.com/infinitered/thesis-phoenix/pull/156)
69 + Ambiguous call to function repo/0 on `mix ecto.migrate` - Phoenix 1.4
70 + </tr>
66 71 <tr>
67 72 <td>
68 73 <strong>0.3.0</strong><br/>
69 - - Removes the LZString compression for backups (page revisions) as per the conversation [here](https://github.com/infinitered/thesis-phoenix/issues/129). <br/>
70 - - <em>Adds migration (run `mix thesis.install && mix ecto.migrate`)</em>. It is important to do this before 0.3.0 as the LZString dependency will be removed then.<br/>
71 - - Adds [notifications](https://github.com/infinitered/thesis-phoenix/issues/147). This allows us to warn users of potential Thesis issues depending on page state, environment, Thesis version, etc. Notifications can also be set in the host app config to include custom logic. <br/>
72 - - Bug fixes: [page revision exception](https://github.com/infinitered/thesis-phoenix/issues/128), [add new page button hover issue](https://github.com/infinitered/thesis-phoenix/issues/148).
74 + - Removes the LZString compression for backups (page revisions) as per the conversation <a href="https://github.com/infinitered/thesis-phoenix/issues/129">here</a>. <br/>
75 + - <em>Adds migration (run `mix thesis.install && mix ecto.migrate`)</em>. It is important to do this before 0.4.0 as the LZString dependency will be removed then.<br/>
76 + - Adds <a href="https://github.com/infinitered/thesis-phoenix/issues/147">notifications</a>. This allows us to warn users of potential Thesis issues depending on page state, environment, Thesis version, etc. Notifications can also be set in the host app config to include custom logic. <br/>
77 + - Bug fixes: <a href="https://github.com/infinitered/thesis-phoenix/issues/128">page revision exception</a>, <a href="https://github.com/infinitered/thesis-phoenix/issues/148">add new page button hover issue</a>.
73 78 <br/><br/>
74 79 <strong>0.2.0</strong><br/>
75 80 - Adds a backup (page revision history) feature. Every time a page is saved, a snapshot of the page and content is captured and can be restored later. <br/>
  @@ -96,13 +101,13 @@
96 101
97 102 # ![](http://placehold.it/890x200/2b1e34/ffffff?text=-%20Installation+%26+Configuration%20-)
98 103
99 - *If you are having problems, view `README_INSTALL.md` for manual instructions.*
104 + _If you are having problems, view `README_INSTALL.md` for manual instructions._
100 105
101 106 ##### 1. Add thesis to your `mix.exs`:
102 107
103 108 ```elixir
104 109 def deps do
105 - [{:thesis, "~> 0.3.0"}]
110 + [{:thesis, "~> 0.3.1"}]
106 111 end
107 112
108 113 def application do
  @@ -127,6 +132,7 @@ as generate migrations and an authorization module in your `lib/thesis_auth.ex`.
127 132 ```
128 133 $ mix ecto.migrate
129 134 ```
135 +
130 136 <br/>
131 137
132 138 ---
  @@ -171,17 +177,18 @@ becomes...
171 177 ```
172 178
173 179 ### Custom HTML Editor
180 +
174 181 Don't like the MediumEditor? Write your own custom editor implementing the common editor interface.
175 182
176 183 ```js
177 184 class MyCustomEditor {
178 - constructor (opts) {
179 - this.onChange = opts.onChange
185 + constructor(opts) {
186 + this.onChange = opts.onChange;
180 187 }
181 - enable () {} // Setup Editor
182 - disable () {} // Teardown Editor
183 - content (editor) {} // Return content
184 - set (name, data) {} // Set content
188 + enable() {} // Setup Editor
189 + disable() {} // Teardown Editor
190 + content(editor) {} // Return content
191 + set(name, data) {} // Set content
185 192 }
186 193 ```
187 194
  @@ -193,6 +200,7 @@ To enable, add this in your config/config.exs file:
193 200 config :thesis,
194 201 html_editor: "MyCustomEditor"
195 202 ```
203 +
196 204 <br/>
197 205
198 206 ---
  @@ -210,6 +218,7 @@ becomes...
210 218 ```eex
211 219 <h1><%= content(@conn, "Title identifier", :text, do: "My Title") %></h1>
212 220 ```
221 +
213 222 <br/>
214 223
215 224 ---
  @@ -229,6 +238,7 @@ becomes...
229 238 <iframe width="560" height="315" src="https://www.youtube.com/embed/5SVLs_NN_uY" frameborder="0" allowfullscreen></iframe>
230 239 <% end %>
231 240 ```
241 +
232 242 <br/>
233 243
234 244 ---
  @@ -266,6 +276,7 @@ Thesis offers support for a few different ways to handle image uploads: store fi
266 276 point to an uploader/adapter inside your custom app, or use one of the prebuilt adapters (in progress).
267 277
268 278 ##### Store Files in Database
279 +
269 280 For smaller websites and/or website that are hosted on the cloud, thesis offers a no-setup-required image uploader.
270 281 Files are stored in a separate table and contain all of the needed metadata (name, file type, and blobs themselves).
271 282 Keep in mind as you upload more and more files, your database will grow quickly. Don't use this for high-traffic,
  @@ -292,7 +303,6 @@ The module should have an `upload/1` function that accepts a `%Plug.Upload{}` st
292 303 [/lib/thesis/uploaders/repo_uploader.ex](https://github.com/infinitered/thesis-phoenix/blob/master/lib/thesis/uploaders/repo_uploader.ex)
293 304 for an example.
294 305
295 -
296 306 That's it! Restart your server and image content areas will now contain a
297 307 file upload field.
298 308 <br/>
  @@ -328,6 +338,7 @@ You can provide an ID and additional classes by specifying `id` and `classes`, r
328 338 <h1>Title</h1>
329 339 <% end %>
330 340 ```
341 +
331 342 <br/>
332 343
333 344 ---
  @@ -350,13 +361,13 @@ def about(conn, params) do
350 361 @description = Thesis.View.page_description(conn, "A relevant description here.")
351 362 end
352 363 ```
364 +
353 365 <br/>
354 366
355 367 ---
356 368
357 369 # ![](http://placehold.it/890x200/2b1e34/ffffff?text=-%20%20%20%20%20%20%20Dynamic+Pages%20%20%20%20%20%20%20-)
358 370
359 -
360 371 Thesis supports users creating and deleting dynamically routed pages. These
361 372 differ from static pages in that they are routed by Thesis rather than Phoenix,
362 373 and live only in your database. They can be rendered with different templates.
  @@ -405,6 +416,7 @@ routing more specifically. For example, if you want a blog section:
405 416
406 417 get "/blog/*path", <MyApp>.BlogController, :dynamic
407 418 ```
419 +
408 420 <br/>
409 421
410 422 ---
  @@ -466,6 +478,7 @@ defmodule MyApp.ThesisAuth do
466 478 end
467 479 end
468 480 ```
481 +
469 482 <br/>
470 483
471 484 ---
  @@ -539,7 +552,7 @@ websites. Please help us improve!
539 552 7. Run `./bin/ci` in the root directory to ensure that Thesis tests pass.
540 553 8. Push to the branch (`git push origin my-new-feature`)
541 554 9. Create new Pull Request
542 - <br/>
555 + <br/>
543 556
544 557 ---
545 558
  @@ -552,9 +565,9 @@ websites. Please help us improve!
552 565
553 566 # ![](http://placehold.it/890x200/2b1e34/ffffff?text=-%20%20%20%20%20%20Key+Contributors%20%20%20%20%20%20-)
554 567
555 - | [Jamon Holmgren](https://twitter.com/jamonholmgren) | [Yulian Glukhenko](https://github.com/yulolimum) | [Ken Miller](https://github.com/kemiller) | [Daniel Berkompas](https://twitter.com/dberkom) |
556 - | ------------- | ------------- | ------------- | ------------- |
557 - | <img src="https://infinite.red/images/avatars/img-avatar-jamon@2x.jpg" width="165"> | <img src="https://infinite.red/images/avatars/img-avatar-yulian@2x.jpg" width="165"> | <img src="https://infinite.red/images/avatars/img-avatar-ken@2x.jpg" width="165"> | <img src="https://infinite.red/images/avatars/img-avatar-daniel@2x.jpg" width="165"> |
568 + | [Jamon Holmgren](https://twitter.com/jamonholmgren) | [Yulian Glukhenko](https://github.com/yulolimum) | [Ken Miller](https://github.com/kemiller) | [Daniel Berkompas](https://twitter.com/dberkom) |
569 + | ----------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------ |
570 + | <img src="https://infinite.red/images/avatars/img-avatar-jamon@2x.jpg" width="165"> | <img src="https://infinite.red/images/avatars/img-avatar-yulian@2x.jpg" width="165"> | <img src="https://infinite.red/images/avatars/img-avatar-ken@2x.jpg" width="165"> | <img src="https://infinite.red/images/avatars/img-avatar-daniel@2x.jpg" width="165"> |
558 571
559 572 Also supported by others on the [Infinite Red](https://infinite.red) team.
560 573 <br/>
  @@ -6,7 +6,7 @@ For automatic setup, see `README.md`.
6 6
7 7 ```elixir
8 8 def deps do
9 - [{:thesis, "~> 0.3.0"}]
9 + [{:thesis, "~> 0.3.1"}]
10 10 end
11 11
12 12 def application do
  @@ -33,18 +33,30 @@
33 33 <<"README_INSTALL.md">>,<<"LICENSE.md">>,<<"package.json">>]}.
34 34 {<<"licenses">>,[<<"MIT">>]}.
35 35 {<<"links">>,
36 - [{<<"Docs">>,<<"https://hexdocs.pm/thesis/0.3.0/api-reference.html">>},
36 + [{<<"Docs">>,<<"https://hexdocs.pm/thesis/0.3.1/api-reference.html">>},
37 37 {<<"GitHub">>,<<"https://github.com/infinitered/thesis-phoenix">>}]}.
38 - {<<"maintainers">>,
39 - [<<"Jamon Holmgren">>,<<"Yulian Glukhenko">>,<<"Ken Miller">>,
40 - <<"Daniel Berkompas">>]}.
41 38 {<<"name">>,<<"thesis">>}.
42 39 {<<"requirements">>,
43 - [[{<<"app">>,<<"lz_string">>},
44 - {<<"name">>,<<"lz_string">>},
40 + [[{<<"app">>,<<"phoenix">>},
41 + {<<"name">>,<<"phoenix">>},
45 42 {<<"optional">>,false},
46 43 {<<"repository">>,<<"hexpm">>},
47 - {<<"requirement">>,<<"~> 0.0.7">>}],
44 + {<<"requirement">>,<<">= 1.2.0">>}],
45 + [{<<"app">>,<<"phoenix_html">>},
46 + {<<"name">>,<<"phoenix_html">>},
47 + {<<"optional">>,false},
48 + {<<"repository">>,<<"hexpm">>},
49 + {<<"requirement">>,<<">= 2.0.0">>}],
50 + [{<<"app">>,<<"ecto">>},
51 + {<<"name">>,<<"ecto">>},
52 + {<<"optional">>,false},
53 + {<<"repository">>,<<"hexpm">>},
54 + {<<"requirement">>,<<">= 2.0.0">>}],
55 + [{<<"app">>,<<"plug">>},
56 + {<<"name">>,<<"plug">>},
57 + {<<"optional">>,false},
58 + {<<"repository">>,<<"hexpm">>},
59 + {<<"requirement">>,<<">= 1.0.0">>}],
48 60 [{<<"app">>,<<"poison">>},
49 61 {<<"name">>,<<"poison">>},
50 62 {<<"optional">>,false},
  @@ -55,29 +67,14 @@
55 67 {<<"optional">>,false},
56 68 {<<"repository">>,<<"hexpm">>},
57 69 {<<"requirement">>,<<">= 0.11.0">>}],
58 - [{<<"app">>,<<"ecto">>},
59 - {<<"name">>,<<"ecto">>},
60 - {<<"optional">>,false},
61 - {<<"repository">>,<<"hexpm">>},
62 - {<<"requirement">>,<<">= 2.0.0">>}],
63 70 [{<<"app">>,<<"html_sanitize_ex">>},
64 71 {<<"name">>,<<"html_sanitize_ex">>},
65 72 {<<"optional">>,false},
66 73 {<<"repository">>,<<"hexpm">>},
67 74 {<<"requirement">>,<<">= 1.3.0">>}],
68 - [{<<"app">>,<<"plug">>},
69 - {<<"name">>,<<"plug">>},
75 + [{<<"app">>,<<"lz_string">>},
76 + {<<"name">>,<<"lz_string">>},
70 77 {<<"optional">>,false},
71 78 {<<"repository">>,<<"hexpm">>},
72 - {<<"requirement">>,<<">= 1.0.0">>}],
73 - [{<<"app">>,<<"phoenix_html">>},
74 - {<<"name">>,<<"phoenix_html">>},
75 - {<<"optional">>,false},
76 - {<<"repository">>,<<"hexpm">>},
77 - {<<"requirement">>,<<">= 2.0.0">>}],
78 - [{<<"app">>,<<"phoenix">>},
79 - {<<"name">>,<<"phoenix">>},
80 - {<<"optional">>,false},
81 - {<<"repository">>,<<"hexpm">>},
82 - {<<"requirement">>,<<">= 1.2.0">>}]]}.
83 - {<<"version">>,<<"0.3.0">>}.
79 + {<<"requirement">>,<<"~> 0.0.7">>}]]}.
80 + {<<"version">>,<<"0.3.1">>}.
  @@ -1,6 +1,6 @@
1 1 defmodule Thesis.Mixfile do
2 2 use Mix.Project
3 - @version "0.3.0" # REMEMBER TO UPDATE package.json and both READMEs!
3 + @version "0.3.1" # REMEMBER TO UPDATE package.json and both READMEs!
4 4
5 5 def project do
6 6 [
  @@ -1,6 +1,6 @@
1 1 {
2 2 "name": "thesis",
3 - "version": "0.3.0",
3 + "version": "0.3.1",
4 4 "repository": {},
5 5 "license": "MIT",
6 6 "devDependencies": {
  @@ -33,7 +33,8 @@
33 33 },
34 34 "scripts": {
35 35 "watch": "webpack --watch-stdin --progress --color",
36 - "webpack": "webpack -p"
36 + "webpack": "webpack -p",
37 + "ci:test": "./bin/ci"
37 38 },
38 39 "dependencies": {}
39 40 }
Loading more files…