81 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Elixir
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Elixir
		
	
	
	
	
	
defmodule ApiWeb.EmailerLive.Index do
 | 
						|
  use ApiWeb, :live_view
 | 
						|
 | 
						|
  alias Api.EmailToSendContext
 | 
						|
 | 
						|
  def mount(_params, _session, socket) do
 | 
						|
 | 
						|
  cols = [
 | 
						|
    
 | 
						|
    %{title: "id", field: "idemailtosend", headerFilter: true},
 | 
						|
    %{title: "ID Study", field: "idstudy", headerFilter: true},
 | 
						|
    %{title: "email", field: "patientemail", width: 300, headerFilter: true, editor: "input"},
 | 
						|
    %{title: "sent", field: "sent", formatter: "tickCross", hozAlign: "center", editor: "tickCross", headerFilter: true},
 | 
						|
    %{title: "hasreport", field: "hasreport", formatter: "tickCross", hozAlign: "center", headerFilter: true},
 | 
						|
    %{title: "retries", field: "retries", headerFilter: true},
 | 
						|
    %{title: "errormsg", field: "errormsg", width: 200},
 | 
						|
    %{title: "forcereprocess", field: "forcereprocess", formatter: "tickCross", headerFilter: true},
 | 
						|
    %{title: "Sent date time", field: "sentdatetime"},
 | 
						|
    %{title: "Accession Number", field: "accessionnumber"},
 | 
						|
    %{title: "Patientname", field: "patientname"},
 | 
						|
    %{title: "Patient ID", field: "patientid"},
 | 
						|
    %{title: "Study Date", field: "studydate"}
 | 
						|
  ]
 | 
						|
  socket =
 | 
						|
    socket
 | 
						|
    |> assign(%{
 | 
						|
      columns: cols,
 | 
						|
      current_row: %{}
 | 
						|
     })
 | 
						|
     {:ok, socket}
 | 
						|
  end
 | 
						|
 | 
						|
  def data(email) do
 | 
						|
  %{
 | 
						|
    idemailtosend: email.idemailtosend,
 | 
						|
    idstudy: email.idstudy,
 | 
						|
    patientemail: email.patientemail,
 | 
						|
    sent: email.sent,
 | 
						|
    hasreport: email.hasreport,
 | 
						|
    retries: email.retries,
 | 
						|
    errormsg: email.errormsg,
 | 
						|
    forcereprocess: email.forcereprocess,
 | 
						|
    sentdatetime: email.sentdatetime,
 | 
						|
    accessionnumber: email.accessionnumber,
 | 
						|
    patientname: email.patientname,
 | 
						|
    patientid: email.patientid,
 | 
						|
    studydate: email.studydate
 | 
						|
  }
 | 
						|
  end
 | 
						|
 | 
						|
  def handle_event(msg, params, socket) do
 | 
						|
    case msg do
 | 
						|
      "fetch_data" ->
 | 
						|
          emails =
 | 
						|
            EmailToSendContext.list_emails(
 | 
						|
            :paged,
 | 
						|
            {params["filter"], params["sort"]},
 | 
						|
            params["page"],
 | 
						|
            25
 | 
						|
        )
 | 
						|
        res = %{last_page: emails.total_pages + 1, data: for(email <- emails.list, do: data(email))}
 | 
						|
        {:reply, res, socket}
 | 
						|
      "celledited" -> 
 | 
						|
        case EmailToSendContext.update_emailtosend(params) do
 | 
						|
          {:ok, _} -> {:noreply, socket |> put_flash(:info, "Actualizado correctamente")}
 | 
						|
          _ ->{:noreply, socket |> put_flash(:error, "Error actualizando")}
 | 
						|
        end 
 | 
						|
 | 
						|
      "rowSelected" -> 
 | 
						|
        {:noreply, socket}
 | 
						|
 | 
						|
      "update_tabulator" ->
 | 
						|
        {:noreply, push_event(socket, "update_tabulator", %{})}
 | 
						|
 | 
						|
      _ -> {:noreply, socket}
 | 
						|
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
 end
 |