diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..dd84ea7 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,38 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: '' +assignees: '' + +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behavior: +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + +**Desktop (please complete the following information):** + - OS: [e.g. iOS] + - Browser [e.g. chrome, safari] + - Version [e.g. 22] + +**Smartphone (please complete the following information):** + - Device: [e.g. iPhone6] + - OS: [e.g. iOS8.1] + - Browser [e.g. stock browser, safari] + - Version [e.g. 22] + +**Additional context** +Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..bbcbbe7 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,20 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: '' +labels: '' +assignees: '' + +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2e438be..cebf073 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -26,4 +26,5 @@ jobs: otp-version: ${{matrix.otp}} elixir-version: ${{matrix.elixir}} - run: mix deps.get + - run: mix credo --strict - run: mix coveralls.github diff --git a/CHANGELOG.md b/CHANGELOG.md index a2fd73c..a08b532 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,16 +2,24 @@ ## [Unreleased](https://github.com/devato/inertia_phoenix/tree/HEAD) -[Full Changelog](https://github.com/devato/inertia_phoenix/compare/0.1.7...HEAD) +[Full Changelog](https://github.com/devato/inertia_phoenix/compare/0.1.8...HEAD) **Implemented enhancements:** -- Add config for layout [\#10](https://github.com/devato/inertia_phoenix/issues/10) +- Add partial reloads [\#4](https://github.com/devato/inertia_phoenix/issues/4) **Merged pull requests:** - Partial reload [\#11](https://github.com/devato/inertia_phoenix/pull/11) ([bigx333](https://github.com/bigx333)) +## [0.1.8](https://github.com/devato/inertia_phoenix/tree/0.1.8) (2020-02-17) + +[Full Changelog](https://github.com/devato/inertia_phoenix/compare/0.1.7...0.1.8) + +**Implemented enhancements:** + +- Add config for layout [\#10](https://github.com/devato/inertia_phoenix/issues/10) + ## [0.1.7](https://github.com/devato/inertia_phoenix/tree/0.1.7) (2020-02-17) [Full Changelog](https://github.com/devato/inertia_phoenix/compare/0.1.6...0.1.7) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..3e8b881 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,76 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, sex characteristics, gender identity and expression, +level of experience, education, socio-economic status, nationality, personal +appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or + advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at team@devato.com. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see +https://www.contributor-covenant.org/faq diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..cbfd4fb --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,36 @@ +# Contributing + +We love pull requests from everyone. By participating in this project, you +agree to abide by the devato [code of conduct](CODE_OF_CONDUCT.md). + +### Fork, then clone the repo: + + git clone git@github.com:your-username/inertia_phoenix.git + +### Set up your machine: + + mix deps.get + +### Make sure the tests pass: + + mix test + +### Make your change. Add tests for your change. Make the tests pass: + + mix test + +### Run credo + + mix credo + +Squash commits, push to your fork and submit a PR. + +At this point you're waiting on us. We like to at least comment on pull requests +within three business days (and, typically, one business day). We may suggest +some changes or improvements or alternatives. + +Some things that will increase the chance that your pull request is accepted: + +* Write tests. +* Run credo. +* Write a clear commit message. diff --git a/LICENSE.txt b/LICENSE.txt index 1b2f64d..d638d1a 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2019 TODO: Bellawatt +Copyright (c) 2020 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 0cda710..b644e9d 100644 --- a/README.md +++ b/README.md @@ -12,9 +12,12 @@ Inertiajs Adapter for Elixir Phoenix - [Installation](#installation) - [Configuration](#configuration) - [Render from Controller](#render-from-controller) +- [Layout/Templates](#layouttemplates) +- [Configure Axios](#configure-axios) - [Features](#features) -- [In progress:](#in-progress) +- [In Progress](#in-progress) - [Pingcrm Example (wip)](#pingcrm-example-wip) +- [Contributing](#contributing) @@ -22,7 +25,7 @@ Inertiajs Adapter for Elixir Phoenix Add to mix.exs: ``` -{:inertia_phoenix, "~> 0.1.7"} +{:inertia_phoenix, "~> 0.1.9"} ``` Add Plug to `WEB_PATH/router.ex` @@ -106,14 +109,20 @@ axios.defaults.xsrfHeaderName = "x-csrf-token"; - Assets Versioning: https://inertiajs.com/asset-versioning - Auto put response cookie for crsf token: https://inertiajs.com/security#csrf-protection - Override redirect codes: https://inertiajs.com/redirects#303-response-code +- Partial reloads: https://inertiajs.com/requests#partial-reloads -## In progress: +## In Progress - Documentation - Shared data interface: https://inertiajs.com/shared-data -- Partial reloads: https://inertiajs.com/requests#partial-reloads +- Plug tests ## Pingcrm Example (wip) -https://github.com/devato/pingcrm +- React Example: https://github.com/devato/pingcrm + +## Contributing + +[Contribution guidelines for this project](CONTRIBUTING.md) + diff --git a/lib/inertia_phoenix/plug.ex b/lib/inertia_phoenix/plug.ex index ef3b3ab..f0c97f2 100644 --- a/lib/inertia_phoenix/plug.ex +++ b/lib/inertia_phoenix/plug.ex @@ -46,7 +46,7 @@ defmodule InertiaPhoenix.Plug do |> put_resp_header("x-inertia", "true") |> put_resp_header("x-inertia-location", request_url(conn)) |> put_resp_content_type("text/html") - |> put_status(:conflict) + |> send_resp(:conflict, "") |> halt() end diff --git a/mix.exs b/mix.exs index a799967..4b43f2e 100644 --- a/mix.exs +++ b/mix.exs @@ -4,14 +4,19 @@ defmodule InertiaPhoenix.MixProject do def project do [ app: :inertia_phoenix, - version: "0.1.8", + version: "0.1.9", elixir: "~> 1.6", elixirc_paths: elixirc_paths(Mix.env()), start_permanent: Mix.env() == :prod, compilers: [:phoenix] ++ Mix.compilers(), deps: deps(), test_coverage: [tool: ExCoveralls], - preferred_cli_env: [coveralls: :test, "coveralls.detail": :test, "coveralls.post": :test, "coveralls.html": :test], + preferred_cli_env: [ + coveralls: :test, + "coveralls.detail": :test, + "coveralls.post": :test, + "coveralls.html": :test + ], description: "Inertiajs adapter for Elixir Phoenix", package: package() ] diff --git a/test/inertia_phoenix/controller_test.exs b/test/inertia_phoenix/controller_test.exs index 93c4fc1..78d206b 100644 --- a/test/inertia_phoenix/controller_test.exs +++ b/test/inertia_phoenix/controller_test.exs @@ -86,7 +86,6 @@ defmodule InertiaPhoenix.ControllerTest do |> fetch_session |> fetch_flash |> InertiaPhoenix.Plug.call([]) - |> InertiaPhoenix.Controller.render_inertia("Home", props: %{hello: "world"}) assert html = html_response(conn, 409) end diff --git a/test/support/layout_view.ex b/test/support/layout_view.ex index 769b1a8..24337a1 100644 --- a/test/support/layout_view.ex +++ b/test/support/layout_view.ex @@ -1,4 +1,5 @@ defmodule InertiaPheonix.Test.LayoutView do - use Phoenix.View, root: "test/inertia_phoenix/templates", - namespace: InertiaPheonix + use Phoenix.View, + root: "test/inertia_phoenix/templates", + namespace: InertiaPheonix end