forked from shibao/cannery
		
	pull version number from config
This commit is contained in:
		@@ -7,32 +7,15 @@ defmodule CanneryWeb.HomeLive do
 | 
			
		||||
  alias Cannery.Accounts
 | 
			
		||||
  alias CanneryWeb.Endpoint
 | 
			
		||||
 | 
			
		||||
  @version Mix.Project.config()[:version]
 | 
			
		||||
 | 
			
		||||
  @impl true
 | 
			
		||||
  def mount(_params, _session, socket) do
 | 
			
		||||
    admins = Accounts.list_users_by_role(:admin)
 | 
			
		||||
    socket = socket |> assign(page_title: "Home", query: "", results: %{}, admins: admins)
 | 
			
		||||
    socket = socket |> assign(page_title: gettext("Home"), admins: admins, version: @version)
 | 
			
		||||
    {:ok, socket}
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  @impl true
 | 
			
		||||
  def handle_event("suggest", %{"q" => query}, socket) do
 | 
			
		||||
    {:noreply, socket |> assign(results: search(query), query: query)}
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  @impl true
 | 
			
		||||
  def handle_event("search", %{"q" => query}, socket) do
 | 
			
		||||
    case search(query) do
 | 
			
		||||
      %{^query => vsn} ->
 | 
			
		||||
        {:noreply, redirect(socket, external: "https://hexdocs.pm/#{query}/#{vsn}")}
 | 
			
		||||
 | 
			
		||||
      _no_query ->
 | 
			
		||||
        {:noreply,
 | 
			
		||||
         socket
 | 
			
		||||
         |> put_flash(:error, "No dependencies found matching \"#{query}\"")
 | 
			
		||||
         |> assign(results: %{}, query: query)}
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  @impl true
 | 
			
		||||
  def render(assigns) do
 | 
			
		||||
    ~H"""
 | 
			
		||||
@@ -138,7 +121,9 @@ defmodule CanneryWeb.HomeLive do
 | 
			
		||||
            target="_blank"
 | 
			
		||||
            rel="noopener noreferrer"
 | 
			
		||||
          >
 | 
			
		||||
            <p>0.7.1</p>
 | 
			
		||||
            <p>
 | 
			
		||||
              <%= @version %>
 | 
			
		||||
            </p>
 | 
			
		||||
            <i class="fas fa-md fa-info-circle"></i>
 | 
			
		||||
          </.link>
 | 
			
		||||
        </li>
 | 
			
		||||
@@ -188,16 +173,4 @@ defmodule CanneryWeb.HomeLive do
 | 
			
		||||
    </div>
 | 
			
		||||
    """
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  defp search(query) do
 | 
			
		||||
    if not CanneryWeb.Endpoint.config(:code_reloader) do
 | 
			
		||||
      raise "action disabled when not in development"
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    for {app, desc, vsn} <- Application.started_applications(),
 | 
			
		||||
        app = to_string(app),
 | 
			
		||||
        String.starts_with?(app, query) and not List.starts_with?(desc, ~c"ERTS"),
 | 
			
		||||
        into: %{},
 | 
			
		||||
        do: {app, vsn}
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user