PHP Classes

File: templates/echoareas_import.twig

Recommend this page to a friend!
  Packages of Matthew Asham   Binkterm PHP   templates/echoareas_import.twig   Download  
File: templates/echoareas_import.twig
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: Binkterm PHP
Bulletin board system based on the Web
Author: By
Last change:
Date: 5 days ago
Size: 12,161 bytes
 

Contents

Class file image Download
{% extends "base.twig" %} {% block title %}{{ t('ui.echoareas_import.page_title', {}, locale, ['common']) }} - {{ parent() }}{% endblock %} {% block content %} <div class="d-flex justify-content-between align-items-center mb-4"> <h2> <i class="fas fa-file-import me-2"></i> {{ t('ui.echoareas_import.heading', {}, locale, ['common']) }} </h2> <a href="/echoareas" class="btn btn-secondary"> <i class="fas fa-arrow-left me-1"></i> {{ t('ui.echoareas_import.back_to_echo_areas', {}, locale, ['common']) }} </a> </div> {% if import_error %} <div class="alert alert-danger"> <i class="fas fa-exclamation-triangle me-2"></i> {{ import_error }} </div> {% endif %} {% if import_error_code %} <div class="alert alert-danger"> <i class="fas fa-exclamation-triangle me-2"></i> {{ t(import_error_code, {}, locale, ['common']) }} </div> {% endif %} {% if import_summary %} <div class="alert alert-info"> <div><strong>{{ t('ui.echoareas_import.processed', {}, locale, ['common']) }}</strong> {{ import_summary.processed }}</div> <div><strong>{{ t('ui.echoareas_import.created', {}, locale, ['common']) }}</strong> {{ import_summary.created }}</div> <div><strong>{{ t('ui.echoareas_import.updated', {}, locale, ['common']) }}</strong> {{ import_summary.updated }}</div> <div><strong>{{ t('ui.echoareas_import.skipped_blank_rows', {}, locale, ['common']) }}</strong> {{ import_summary.skipped }}</div> <div><strong>{{ t('ui.echoareas_import.errors', {}, locale, ['common']) }}</strong> {{ import_summary.errors|length }}</div> </div> {% if import_summary.errors|length > 0 %} <div class="card mb-4"> <div class="card-header"> <h6 class="mb-0">{{ t('ui.echoareas_import.import_errors', {}, locale, ['common']) }}</h6> </div> <div class="card-body"> <ul class="mb-0"> {% for item in import_summary.errors %} <li>{{ item }}</li> {% endfor %} </ul> </div> </div> {% endif %} {% endif %} {% set activeFormat = active_format ?? 'csv' %} <ul class="nav nav-tabs mb-3" id="importFormatTabs" role="tablist"> <li class="nav-item" role="presentation"> <button class="nav-link{% if activeFormat != 'na' %} active{% endif %}" id="tab-csv" data-bs-toggle="tab" data-bs-target="#panel-csv" type="button" role="tab"> {{ t('ui.echoareas_import.tab_csv', {}, locale, ['common']) }} </button> </li> <li class="nav-item" role="presentation"> <button class="nav-link{% if activeFormat == 'na' %} active{% endif %}" id="tab-na" data-bs-toggle="tab" data-bs-target="#panel-na" type="button" role="tab"> {{ t('ui.echoareas_import.tab_na', {}, locale, ['common']) }} </button> </li> </ul> <div class="tab-content"> {# ?? CSV tab ???????????????????????????????????????????????????? #} <div class="tab-pane fade{% if activeFormat != 'na' %} show active{% endif %}" id="panel-csv" role="tabpanel"> <div class="row"> <div class="col-lg-7"> <div class="card"> <div class="card-header"> <h5 class="mb-0">{{ t('ui.echoareas_import.upload_csv', {}, locale, ['common']) }}</h5> </div> <div class="card-body"> <form method="POST" enctype="multipart/form-data" id="echoareaImportCsvForm"> <input type="hidden" name="csrf_token" value="{{ csrf_token }}"> <input type="hidden" name="import_format" value="csv"> <div class="mb-3"> <label for="echoareasCsv" class="form-label">{{ t('ui.echoareas_import.csv_file', {}, locale, ['common']) }}</label> <input type="file" class="form-control" id="echoareasCsv" name="echoareas_csv" accept=".csv,text/csv" required> <div class="form-text">{{ t('ui.echoareas_import.csv_help', {}, locale, ['common']) }}</div> </div> <div class="d-flex justify-content-end gap-2"> <a href="/echoareas" class="btn btn-secondary">{{ t('ui.common.cancel', {}, locale, ['common']) }}</a> <button type="submit" class="btn btn-fidonet import-btn"> <i class="fas fa-file-import me-1 import-icon"></i> <span class="import-label">{{ t('ui.echoareas_import.import_echo_areas', {}, locale, ['common']) }}</span> </button> </div> </form> </div> </div> </div> <div class="col-lg-5"> <div class="card mb-3"> <div class="card-header"> <h6 class="mb-0">{{ t('ui.echoareas_import.csv_format', {}, locale, ['common']) }}</h6> </div> <div class="card-body"> <p class="mb-2">{{ t('ui.echoareas_import.each_row_fields', {}, locale, ['common']) }}</p> <pre class="bg-light border rounded p-3 mb-3">ECHOTAG,DESCRIPTION,DOMAIN</pre> <p class="mb-2">{{ t('ui.echoareas_import.example', {}, locale, ['common']) }}</p> <pre class="bg-light border rounded p-3 mb-0">FIDONET.GEN,General FidoNet discussion,fidonet FSX_GEN,FSXnet general discussion,fsxnet LOCAL.TEST,Local test area,</pre> </div> </div> <div class="card"> <div class="card-header"> <h6 class="mb-0">{{ t('ui.echoareas_import.import_rules', {}, locale, ['common']) }}</h6> </div> <div class="card-body"> <ul class="mb-0"> <li>{{ t('ui.echoareas_import.rule_domain_blank', {}, locale, ['common'])|raw }}</li> <li>{{ t('ui.echoareas_import.rule_domain_exists', {}, locale, ['common'])|raw }}</li> <li>{{ t('ui.echoareas_import.rule_existing_area', {}, locale, ['common'])|raw }}</li> <li>{{ t('ui.echoareas_import.rule_new_areas', {}, locale, ['common']) }}</li> <li>{{ t('ui.echoareas_import.rule_header_optional', {}, locale, ['common'])|raw }}</li> </ul> </div> </div> </div> </div> </div> {# ?? .NA tab ???????????????????????????????????????????????????? #} <div class="tab-pane fade{% if activeFormat == 'na' %} show active{% endif %}" id="panel-na" role="tabpanel"> <div class="row"> <div class="col-lg-7"> <div class="card"> <div class="card-header"> <h5 class="mb-0">{{ t('ui.echoareas_import.upload_na', {}, locale, ['common']) }}</h5> </div> <div class="card-body"> <form method="POST" enctype="multipart/form-data" id="echoareaImportNaForm"> <input type="hidden" name="csrf_token" value="{{ csrf_token }}"> <input type="hidden" name="import_format" value="na"> <div class="mb-3"> <label for="naDomain" class="form-label">{{ t('ui.echoareas_import.na_domain', {}, locale, ['common']) }}</label> <select class="form-select" id="naDomain" name="na_domain" required> <option value="">{{ t('ui.echoareas_import.na_domain_local', {}, locale, ['common']) }}</option> {% for domain in domains %} <option value="{{ domain }}">{{ domain }}</option> {% endfor %} </select> <div class="form-text">{{ t('ui.echoareas_import.na_domain_help', {}, locale, ['common']) }}</div> </div> <div class="mb-3"> <label for="echoareasNa" class="form-label">{{ t('ui.echoareas_import.na_file', {}, locale, ['common']) }}</label> <input type="file" class="form-control" id="echoareasNa" name="echoareas_na" accept=".na,.txt,text/plain" required> <div class="form-text">{{ t('ui.echoareas_import.na_help', {}, locale, ['common']) }}</div> </div> <div class="d-flex justify-content-end gap-2"> <a href="/echoareas" class="btn btn-secondary">{{ t('ui.common.cancel', {}, locale, ['common']) }}</a> <button type="submit" class="btn btn-fidonet import-btn"> <i class="fas fa-file-import me-1 import-icon"></i> <span class="import-label">{{ t('ui.echoareas_import.import_echo_areas', {}, locale, ['common']) }}</span> </button> </div> </form> </div> </div> </div> <div class="col-lg-5"> <div class="card mb-3"> <div class="card-header"> <h6 class="mb-0">{{ t('ui.echoareas_import.na_format', {}, locale, ['common']) }}</h6> </div> <div class="card-body"> <p class="mb-2">{{ t('ui.echoareas_import.na_format_desc', {}, locale, ['common']) }}</p> <pre class="bg-light border rounded p-3 mb-0">CHEESE_TRENDING Trending discussion CHEESE_BBSBUZZ BBS Buzz CHEESE_NEWS Breaking News</pre> </div> </div> <div class="card"> <div class="card-header"> <h6 class="mb-0">{{ t('ui.echoareas_import.import_rules', {}, locale, ['common']) }}</h6> </div> <div class="card-body"> <ul class="mb-0"> <li>{{ t('ui.echoareas_import.rule_na_domain_selector', {}, locale, ['common'])|raw }}</li> <li>{{ t('ui.echoareas_import.rule_domain_exists', {}, locale, ['common'])|raw }}</li> <li>{{ t('ui.echoareas_import.rule_existing_area', {}, locale, ['common'])|raw }}</li> <li>{{ t('ui.echoareas_import.rule_new_areas', {}, locale, ['common']) }}</li> <li>{{ t('ui.echoareas_import.rule_na_comments', {}, locale, ['common']) }}</li> </ul> </div> </div> </div> </div> </div> </div> {% endblock %} {% block scripts %} <script> document.addEventListener('DOMContentLoaded', function() { var importingLabel = {{ t('ui.echoareas_import.importing', {}, locale, ['common'])|json_encode|raw }}; document.querySelectorAll('form[id^="echoareaImport"]').forEach(function(form) { form.addEventListener('submit', function() { var btn = form.querySelector('.import-btn'); var icon = form.querySelector('.import-icon'); var label = form.querySelector('.import-label'); if (btn) btn.disabled = true; if (icon) icon.className = 'fas fa-spinner fa-spin me-1 import-icon'; if (label) label.textContent = importingLabel; }); }); }); </script> {% endblock %}