<!--
© Realcom. All rights reserved.
This software is protected by copyright law.
Unauthorized copying, modification, or redistribution is prohibited.

본 소프트웨어는 저작권법의 보호를 받습니다.
저작권자의 사전 서면 동의 없이
무단 사용, 복제, 수정, 재배포를 금지합니다.

Use of this software constitutes acceptance of the above terms.
본 소프트웨어를 사용하는 행위는 위 조건에 동의한 것으로 간주됩니다.
-->


{% extends "base.html" %}
{% block title %}DDNS{% endblock %}

{% block content %}
<div style="padding:16px;">
  <h3>DDNS 설정</h3>

  <!-- =========================
       IP 정보 표시 영역
       ========================= -->
  <div id="ip-info"
       style="margin:10px 0 16px 0;
              padding:10px 14px;
              background:#101621;
              border-radius:8px;
              font-size:13px;
              color:#cbd5e1;
              display:flex;
              gap:28px;">
    <div>🌐 공인 IP (외부): <span id="public-ip">조회중…</span></div>
    <div>🏠 내부 IP (서버): <span id="local-ip">조회중…</span></div>
  </div>

  <!-- =========================
       DDNS 주소 설정 (app.py의 /ddns POST + field=domain에 맞춤)
       ========================= -->
  <div style="margin-top:10px;
              padding:16px;
              background:#ffffff;
              border-radius:8px;
              width:560px;
              box-shadow:0 2px 6px rgba(0,0,0,0.06);">

    <h4 style="margin:0 0 12px 0;">DDNS 도메인 설정</h4>

    <form method="post" action="/ddns">
      <div style="margin-bottom:10px;">
        <label style="display:inline-block; width:150px; font-size:12px;">
          도메인 주소
        </label>
        <input type="text"
               name="domain"
               value="{{ config.get('domain','') if config else '' }}"
               placeholder="예) nas.realcom.kr"
               style="width:320px; padding:4px 6px; font-size:12px;" />
      </div>

      <div style="margin-bottom:12px; font-size:11px; color:#666; line-height:1.5;">
        ※ 저장하면 <b>/etc/nas_ddns.json</b>에 기록되고, ddns_update.sh 실행 + nginx 설정 갱신/리로드를 시도합니다.<br>
        ※ 스크립트 경로: <b>/usr/local/bin/ddns_update.sh</b>
      </div>

      <button type="submit"
              style="padding:6px 14px; font-size:12px; cursor:pointer;">
        저장 및 갱신
      </button>
    </form>
  </div>
</div>

<script>
/* =========================
   IP 정보 불러오기 (세션 포함)
   ========================= */
fetch("/api/ipinfo", { credentials: "same-origin" })
  .then(async (res) => {
    const text = await res.text();
    try {
      return JSON.parse(text);
    } catch (e) {
      throw new Error("api/ipinfo 응답이 JSON이 아님: " + text.slice(0, 100));
    }
  })
  .then(data => {
    document.getElementById("public-ip").innerText =
      data.public_ip ? data.public_ip : "unknown";

    document.getElementById("local-ip").innerText =
      data.local_ip ? data.local_ip : "unknown";
  })
  .catch(err => {
    console.error(err);
    document.getElementById("public-ip").innerText = "error";
    document.getElementById("local-ip").innerText  = "error";
  });
</script>
{% endblock %}
