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
|