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