Edit

kmx.io/kmxgit/lib/kmxgit_web.ex

Branch :

  • lib/kmxgit_web.ex
  • defmodule KmxgitWeb do
      @moduledoc """
      The entrypoint for defining your web interface, such
      as controllers, views, channels and so on.
    
      This can be used in your application as:
    
          use KmxgitWeb, :controller
          use KmxgitWeb, :view
    
      The definitions below will be executed for every view,
      controller, etc, so keep them short and clean, focused
      on imports, uses and aliases.
    
      Do NOT define functions inside the quoted expressions
      below. Instead, define any helper function in modules
      and import those modules here.
      """
    
      def controller do
        quote do
          use Phoenix.Controller, namespace: KmxgitWeb
    
          import Plug.Conn
          import KmxgitWeb.Gettext
          alias KmxgitWeb.ErrorView
          alias KmxgitWeb.Router.Helpers, as: Routes
    
          def not_found(conn, _params \\ %{}) do
            conn
            |> put_status(:not_found)
            |> put_view(ErrorView)
            |> render(:"404")
          end
        end
      end
    
      def view do
        quote do
          use Phoenix.View,
            root: "lib/kmxgit_web/templates",
            namespace: KmxgitWeb
    
          # Import convenience functions from controllers
          import Phoenix.Controller,
            only: [get_flash: 1, get_flash: 2, view_module: 1, view_template: 1]
    
          # Include shared imports and aliases for views
          unquote(view_helpers())
    
          def recaptcha_site_key do
            Application.get_env :kmxgit, :recaptcha_site_key
          end
        end
      end
    
      def live_view do
        quote do
          use Phoenix.LiveView,
            layout: {KmxgitWeb.LayoutView, "live.html"}
    
          unquote(view_helpers())
        end
      end
    
      def live_component do
        quote do
          use Phoenix.LiveComponent
    
          unquote(view_helpers())
        end
      end
    
      def router do
        quote do
          use Phoenix.Router
    
          import Plug.Conn
          import Phoenix.Controller
          import Phoenix.LiveView.Router
        end
      end
    
      def channel do
        quote do
          use Phoenix.Channel
          import KmxgitWeb.Gettext
        end
      end
    
      defp view_helpers do
        quote do
          # Use all HTML functionality (forms, tags, etc)
          use Phoenix.HTML
    
          # Import LiveView and .heex helpers (live_render, live_patch, <.form>, etc)
          import Phoenix.LiveView.Helpers
    
          # Import basic rendering functionality (render, render_layout, etc)
          import Phoenix.View
    
          import KmxgitWeb.ErrorHelpers
          import KmxgitWeb.Gettext
          alias KmxgitWeb.Router.Helpers, as: Routes
        end
      end
    
      @doc """
      When used, dispatch to the appropriate controller/view/etc.
      """
      defmacro __using__(which) when is_atom(which) do
        apply(__MODULE__, which, [])
      end
    end