Current section
37 Versions
Jump to
Current section
37 Versions
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 | #  |
| 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 | #  |
| 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 | #  |
| 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…