[guided]The constants $\bar{m}$ in the language are meant to name the elements of $M$. In the model $N^+$, each such constant has an interpretation $\bar{m}^{N^+}$. We use these interpretations to define
\begin{align*}
j: M &\to N \\
m &\mapsto \bar{m}^{N^+},
\end{align*}
where $N$ is the $\mathcal{L}$-reduct of $N^+$.
First, $j$ is injective. Suppose $m_1,m_2 \in M$ and $m_1 \neq m_2$. Since the elementary diagram contains every $\mathcal{L}(M)$-sentence true in $M$, the sentence
\begin{align*}
\bar{m}_1 \neq \bar{m}_2
\end{align*}
belongs to $\operatorname{Diag}_{\mathrm{el}}(M)$. Because $N^+ \models \operatorname{Diag}_{\mathrm{el}}(M)$, we get
\begin{align*}
N^+ \models \bar{m}_1 \neq \bar{m}_2.
\end{align*}
Therefore $\bar{m}_1^{N^+} \neq \bar{m}_2^{N^+}$, so $j(m_1) \neq j(m_2)$.
Now we verify elementarity. Let $\psi(y_1,\dots,y_n)$ be an arbitrary $\mathcal{L}$-formula, and let $m_1,\dots,m_n \in M$. The point of using the elementary diagram, rather than only the atomic diagram, is that it records the truth of every formula with parameters from $M$, not only atomic formulas.
If
\begin{align*}
M \models \psi(m_1,\dots,m_n),
\end{align*}
then the sentence
\begin{align*}
\psi(\bar{m}_1,\dots,\bar{m}_n)
\end{align*}
is true in the natural $\mathcal{L}(M)$-expansion of $M$. Hence it belongs to $\operatorname{Diag}_{\mathrm{el}}(M)$. Since $N^+ \models \operatorname{Diag}_{\mathrm{el}}(M)$, its $\mathcal{L}$-reduct $N$ satisfies
\begin{align*}
N \models \psi(j(m_1),\dots,j(m_n)).
\end{align*}
Conversely, if
\begin{align*}
M \models \neg \psi(m_1,\dots,m_n),
\end{align*}
then
\begin{align*}
\neg \psi(\bar{m}_1,\dots,\bar{m}_n)
\end{align*}
belongs to $\operatorname{Diag}_{\mathrm{el}}(M)$, so
\begin{align*}
N \models \neg \psi(j(m_1),\dots,j(m_n)).
\end{align*}
Combining the two cases gives
\begin{align*}
M \models \psi(m_1,\dots,m_n)
\iff
N \models \psi(j(m_1),\dots,j(m_n)).
\end{align*}
Since $\psi$ and the tuple from $M$ were arbitrary, $j$ is an elementary embedding.[/guided]