Как загрузить содержимое файла в редактор ace - PullRequest
0 голосов
/ 07 июля 2019

Я настроил веб-сайт django, позволяющий пользователям загружать файлы .txt, и я хочу добавить функцию редактирования, интегрировав редактор ACE (или любые другие предложения редактора?).

У меня есть список загруженных файлов, и я хочу, чтобы кнопка редактирования перенаправляла на страницу редактора с загрузкой содержимого файла на странице редактора.

Мне интересно, как загрузить содержимое файла в редактор ace?

Я нашел некоторый код о загрузке файла и непосредственном его отображении в редакторе. (https://jsfiddle.net/xlaptop2001/y70gL3kv) Однако я хочу перенаправить на новую страницу редактора с загрузкой файла, который уже был загружен, нажав «Изменить». кнопка.

{% extends 'base.html' %}

{% block content %}
<h1>Mechanism {{ object.id }} details</h1>
<style>
  ul.b {
  list-style-type: square;
  line-height:200%;
}
</style>

<ul class="b">
        <li>
          {% if object.ck_mechanism_file %}
            <a href="{{ object.ck_mechanism_file.url }}">{{ object.ck_mechanism_file }}</a>
            <a href="/ace/">
              <button type="button" class="btn btn-primary btn-sm">Edit</button>
            </a>
            <a href="delete_mechanism">
              <button type="button" class="btn btn-danger btn-sm">Delete</button>
            </a>
          {% else %}
            <span class="text-muted">No Mechanism File Attached</span>
          {% endif %} 
        </li>
        <li>
          {% if object.ck_thermo_file %}
          <a href="{{ object.ck_thermo_file.url }}">{{ object.ck_thermo_file }}</a>
          <a href="/ace/">
            <button type="button" class="btn btn-primary btn-sm">Edit</button>
          </a>
          <a href="delete_thermo">
            <button type="button" class="btn btn-danger btn-sm">Delete</button>
          </a>
          {% else %}
            <span class="text-muted">No Thermo File Attached</span>
          {% endif %}  
        </li>
        <li>
          {% if object.ck_transport_file %}
          <a href="{{ object.ck_transport_file.url }}">{{ object.ck_transport_file }}</a>
          <a href="/ace/">
            <button type="button" class="btn btn-primary btn-sm">Edit</button>
          </a>
          <a href="delete_transport">
            <button type="button" class="btn btn-danger btn-sm">Delete</button>
          </a>
          {% else %}
            <span class="text-muted">No Transport File Attached</span>
          {% endif %}  
        </li>
        <li>
          {% if object.ck_surface_file %}
          <a href="{{ object.ck_surface_file.url }}">{{ object.ck_surface_file }}</a>
          <a href="/ace/">
            <button type="button" class="btn btn-primary btn-sm">Edit</button>
          </a>
          <a href="delete_surface">
            <button type="button" class="btn btn-danger btn-sm">Delete</button>
          </a>
          {% else %}
          <span class="text-muted">No Surface File Attached</span>
        {% endif %}  
          </li>
        </ul>

<a href="/ck2yaml/{{ object.id }}">
  <button type="button" class="btn btn-primary btn-sm">Convert to YAML</button>
</a>
<a href="update">
  <button type="button" class="btn btn-primary btn-sm">Update Files</button>
</a>

<p><a href="/list/">Back to mechanism list</a></p>

{% endblock %}

<!DOCTYPE html>
{% load static %}
<html lang="en">
<head>
<title>ACE in Action</title>
<style type="text/css" media="screen">
    #editor { 
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
    }
</style>
</head>
<body>

<div id="editor">function foo(items) {
    var x = "All this is syntax highlighted";
    return x;


}</div>
<div id="file-content" style="display: none;"></div>

<script src="{% static 'JS/aceeditor.js' %}" type="text/javascript" charset="utf-8"></script>   
<script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.4.4/ace.js" type="text/javascript" charset="utf-8"></script>
<script>
    var editor = ace.edit("editor");
    editor.setTheme("ace/theme/monokai");
    editor.session.setMode("ace/mode/javascript");
</script>
</body>
</html>

1 Ответ

0 голосов
/ 07 июля 2019

Первая страница - это страница перед переходом в редактор ACE

Вторая страница - страница ACE редактора

...