{#
  ブログデータ：インポート（import.php）。旧 tpl/import.html。
  screen: apply（入力）/ error（再表示＋エラー）/ result（完了）。
  apply と error はフォーム構造が異なるため個別に持つ（旧テンプレート踏襲）。
#}
{% extends '@setup/maintenance/layout.twig' %}
{% import '@setup/macros/csrf.twig' as csrf %}

{% block title %}ブログデータ：インポート | a-blog cms メンテナンスメニュー{% endblock %}

{% block content %}
  <div class="topicpath-wrap">
    <nav aria-label="現在位置">
      <ol class="topicpath">
        <li><a href="../">HOME</a></li>
        <li><a href="./index.php">メンテナンス</a></li>
        <li><a href="#">ブログデータ：インポート</a></li>
      </ol>
    </nav>
  </div>

  <div class="base-container-grid">
    <div class="main-column is-onecolumn">
      <article class="entry ">
        <header class="entry-header">
          <h1 class="entry-title">ブログデータ：インポート</h1>
        </header>
        <div class="entry-body acms-entry">

          {% if screen == 'apply' %}
          <p>エクスポートしたブログデータのインポートを行います。</p>

          <p class="acms-admin-alert acms-admin-alert-icon acms-admin-alert-info"><span
              class="acms-admin-alert-icon-before acms-admin-icon-news"></span>
            この機能は Ver. 2.8.0 より管理画面から行える様になりました。 特に理由がない場合はそちらをご利用ください。
          </p>

          <form action="" method="post" class="acms-form acms-admin-form form-box">
            {{ csrf.field(setupFormToken) }}
            <h2>1. インポート先またはその親になるブログを選択</h2>
            <ul class="cfgInput">
              {% for blog in blogs %}
              <li>
                <label class="acms-form-radio">
                  <input type="radio" name="bid" value="{{ blog.bid }}" />
                  <i class="acms-ico-radio"></i>
                  &nbsp;{{ blog.bid }} : {{ blog.name }} (親BID : {{ blog.parent }})
                </label>
              </li>
              {% endfor %}
            </ul>
            <p>
              <label class="acms-form-checkbox">
                <input type="checkbox" name="parent" value="on"{{ parentChecked ? ' checked="checked"' }} />
                <i class="acms-ico-checkbox"></i>
                選択したブログの子ブログとして新規作成する
              </label>
            </p>
            <p>
              ( 新規作成時のブログ名：<input type="text" name="blog_name" value="blog_name" class="acms-admin-form-width-mini" />
              新規作成時のブログコード：<input type="text" name="blog_code" value="blog_code" class="acms-admin-form-width-mini" /> )
            </p>
            <h2>2. インポートするブログデータ名を選択</h2>

            <p><strong>{{ setupDir }}/bin/</strong> からインポートします。</p>

            <ul class="cfgInput">
              {% for name in names %}
              <li>
                <label class="acms-form-radio">
                  <input type="radio" name="name" value="{{ name }}" />
                  <i class="acms-ico-radio"></i>
                  {{ name }}
                </label>
              </li>
              {% endfor %}
            </ul>
            {% if not hasBin %}
            <p class="errorMsg">
              ブログデータが {{ rootDir }}{{ setupDir }}/bin/ 内に見つかりません。<br />
              エクスポートしたブログデータを {{ rootDir }}{{ setupDir }}/bin/ 内にコピーしてから再度実行してください。
            </p>
            {% else %}
            <p id="submitBtn">
              <input type="submit" name="submit" value="インポートを実行する" class="acms-admin-btn acms-admin-btn-info acms-admin-btn-info acms-admin-btn-large" />
            </p>
            {% endif %}
          </form>
          {% endif %}

          {% if screen == 'error' %}
          <h2>エクスポートしたブログデータのインポートを行います。</h2>
          <p>エクスポートしたブログデータのyamlファイルを {{ rootDir }}setup/bin/ からインポートします。</p>
          <h3>インポート時の注意</h3>
          <h4>themesとarchivesのインポートについて</h4>
          <p>
            エクスポートしたブログデータのディレクトリ内に「themes」または「archives」ディレクトリがある場合は、<br />
            インポート先のブログの「themes」および「archives」ディレクトリにコピーされます。
          </p>
          <h4>カテゴリーコードとエントリーコードの重複</h4>
          <p>
            既存のコンテンツとインポートされるコンテンツとの間で同じコードをもつエントリーやカテゴリーが存在する場合はコードの重複が発生します。<br />
            その場合はコンテンツが正しく表示されない可能性がありますので、インポート後に管理ページから個別に修正してください。
          </p>
          <h4>コンフィグ・ルール・モジュールIDの設定</h4>
          <p>
            コンフィグ・ルール・モジュールIDの情報をインポートする場合は、既存のコンフィグ・ルール・モジュールIDを破棄してください。<br />
            既存の設定を破棄せずにインポートする場合は予期せぬ不具合が発生する可能性があります。
          </p>
          <form action="" method="post" class="acms-form acms-admin-form form-box">
            {{ csrf.field(setupFormToken) }}
            <h2>1. インポート先またはその親になるブログを選択してください。</h2>
            <ul class="cfgInput">
              {% for blog in blogs %}
              <li>
                <label class="acms-form-radio">
                  <input type="radio" name="bid" value="{{ blog.bid }}"{{ blog.bid == currentBid ? ' checked="checked"' }} />
                  <i class="acms-ico-radio"></i>
                  &nbsp;{{ blog.bid }} : {{ blog.name }} (親BID : {{ blog.parent }})</label
                >
              </li>
              {% endfor %}
            </ul>
            {% if 'blog_select' in errorKeys %}
            <p class="errorMsg">インポート先（またはその親）のブログを選択してください。</p>
            {% endif %}
            <p>
              <label class="acms-form-checkbox">
                <input type="checkbox" name="parent" value="on"{{ parentChecked ? ' checked="checked"' }} />
                <i class="acms-ico-checkbox"></i>
                選択したブログの子ブログとして新規作成する
              </label>
            </p>
            <p>
              ( 新規作成時のブログ名：<input type="text" name="blog_name" value="{{ blogName }}" class="acms-admin-form-width-mini" />
              新規作成時のブログコード：<input type="text" name="blog_code" value="{{ blogCode }}" class="acms-admin-form-width-mini" /> )
            </p>

            {% if 'blog_name_input' in errorKeys %}
            <p class="errorMsg">新規作成するブログの名前を入力してください。</p>
            {% endif %}
            {% if 'blog_code_input' in errorKeys %}
            <p class="errorMsg">新規作成するブログのコードを入力してください。</p>
            {% endif %}
            {% if 'blog_code_conflict' in errorKeys %}
            <p class="errorMsg">重複したブログコードが存在します。違うブログコードを入力してください。</p>
            {% endif %}
            <h2>2. インポートするブログデータ名を選択してください。</h2>
            <ul class="cfgInput">
              {% for name in names %}
              <li>
                <label class="acms-form-radio"
                  ><input type="radio" name="name" value="{{ name }}"{{ name == currentName ? ' checked="checked"' }} /><i class="acms-ico-radio"></i
                  >&nbsp;{{ name }}</label
                >
              </li>
              {% endfor %}
            </ul>
            {% if 'name_select' in errorKeys %}
            <p class="errorMsg">ブログデータ名を選択してください。</p>
            {% endif %}
            {% if 'yaml_exist' in errorKeys %}
            <p class="errorMsg">選択されたブログデータのyamlファイルが見つかりません</p>
            {% endif %}
            {% if 'seed_failed' in errorKeys %}
            <p class="errorMsg">{{ errors.seed_failed }}</p>
            {% endif %}
            {% if 'themes_permission' in errorKeys %}
            <p class="errorMsg">themesディレクトリのパーミッションを読み書き可能（777）に設定してください。</p>
            {% endif %}
            {% if 'archives_permission' in errorKeys %}
            <p class="errorMsg">archivesディレクトリのパーミッションを読み書き可能（777）に設定してください。</p>
            {% endif %}

            {% if not hasBin %}
            <p class="errorMsg">
              ブログデータが {{ rootDir }}{{ setupDir }}/bin/ 内に見つかりません。<br />
              エクスポートしたブログデータを {{ rootDir }}{{ setupDir }}/bin/ 内にコピーしてから再度実行してください。
            </p>
            {% else %}
            <p id="submitBtn">
              <input type="submit" name="submit" value="インポートを実行する" class="acms-admin-btn acms-admin-btn-info acms-admin-btn-info acms-admin-btn-large" />
            </p>
            {% endif %}
          </form>
          {% endif %}

          {% if screen == 'result' %}
          <h2>ブログデータをインポートしました</h2>
          <h3>インポートの結果を確認してください。</h3>
          <p>
            インポートの結果を確認するには、{{ setupDir }}ディレクトリを削除してから
            <a href="{{ httpRoot }}bid/{{ bid }}/">{{ httpRoot }}bid/{{ bid }}/</a>にアクセスしてください。
          </p>
          {% endif %}

          <p><a href="./index.php">メンテナンスメニューに戻る</a></p>

          <h2>インポート時の注意</h2>
          <h3>themes と archives のインポートについて</h3>
          <p>
            エクスポートしたブログデータのディレクトリ内に「themes」または「archives」ディレクトリがある場合は、
            インポート先のブログの「themes」および「archives」ディレクトリにコピーされます。
          </p>
          <h3>カテゴリーコードとエントリーコードの重複</h3>
          <p>
            既存のコンテンツとインポートされるコンテンツとの間で同じコードをもつエントリーやカテゴリーが存在する場合はコードの重複が発生します。その場合はコンテンツが正しく表示されない可能性がありますので、インポート後に管理ページから個別に修正してください。
          </p>
          <h3>コンフィグ・ルール・モジュールIDの設定</h3>
          <p>
            コンフィグ・ルール・モジュールIDの情報をインポートする場合は、既存のコンフィグ・ルール・モジュールIDを破棄してください。<br />
            既存の設定を破棄せずにインポートする場合は予期せぬ不具合が発生する可能性があります。
          </p>
        </div>
      </article>
    </div>
  </div>
{% endblock %}
