Просмотр исходного кода

raw js와 api로 기능 이전

잉여개발기 (SPDV) 2 лет назад
Родитель
Сommit
247d4c391c
5 измененных файлов с 78 добавлено и 4 удалено
  1. 3 3
      app.py
  2. 1 0
      route/__init__.py
  3. 2 1
      route/tool/func.py
  4. 42 0
      route/view_raw_document.py
  5. 30 0
      views/main_css/js/route/view_raw_document.js

+ 3 - 3
app.py

@@ -515,9 +515,9 @@ app.route('/xref_page/<int:num>/<everything:name>')(view_xref)
 app.route('/xref_this/<everything:name>', defaults = { 'xref_type' : 2 })(view_xref)
 app.route('/xref_this_page/<int:num>/<everything:name>', defaults = { 'xref_type' : 2 })(view_xref)
 
-app.route('/raw/<everything:name>')(view_raw)
-app.route('/raw_acl/<everything:name>', defaults = { 'doc_acl' : 1 })(view_raw)
-app.route('/raw_rev/<int:num>/<everything:name>')(view_raw)
+app.route('/raw/<everything:name>')(view_raw_document)
+app.route('/raw_acl/<everything:name>', defaults = { 'doc_acl' : 'on' })(view_raw_document)
+app.route('/raw_rev/<int:rev>/<everything:name>')(view_raw_document)
 
 app.route('/diff/<int(signed = True):num_a>/<int(signed = True):num_b>/<everything:name>')(view_diff)
 

+ 1 - 0
route/__init__.py

@@ -159,6 +159,7 @@ from route.view_set import view_set
 from route.view_diff import view_diff
 from route.view_down import view_down
 from route.view_raw import view_raw
+from route.view_raw_document import view_raw_document
 from route.view_read import view_read
 from route.view_xref import view_xref
 

+ 2 - 1
route/tool/func.py

@@ -1045,7 +1045,7 @@ def wiki_css(data):
     data_css = ''
     data_css_dark = ''
 
-    data_css_ver = '197'
+    data_css_ver = '198'
     data_css_ver = '.cache_v' + data_css_ver
 
     if 'main_css' in global_wiki_set:
@@ -1068,6 +1068,7 @@ def wiki_css(data):
         data_css += '<script src="/views/main_css/js/route/editor.js' + data_css_ver + '"></script>'
         data_css += '<script src="/views/main_css/js/route/render.js' + data_css_ver + '"></script>'
         data_css += '<script src="/views/main_css/js/route/topic.js' + data_css_ver + '"></script>'
+        data_css += '<script src="/views/main_css/js/route/view_raw_document.js' + data_css_ver + '"></script>'
         
         # Main CSS
         data_css += '<link rel="stylesheet" href="/views/main_css/css/main.css' + data_css_ver + '">'

+ 42 - 0
route/view_raw_document.py

@@ -0,0 +1,42 @@
+from .tool.func import *
+
+def view_raw_document(name = '', rev = '', doc_acl = ''):
+    with get_db_connect() as conn:
+        curs = conn.cursor()
+
+        rev_str = str(rev)
+
+        sub = '(' + load_lang('raw') + ')'
+        sub += ' (' + rev_str + ')' if rev != '' else ''
+
+        if rev != '':
+            menu = [['history_tool/' + rev_str + '/' + url_pas(name), load_lang('return')]]
+        else:
+            menu = [['w/' + url_pas(name), load_lang('return')]]
+
+        p_data = ''
+        p_data += '''
+            <div id="opennamu_preview_area">
+                <textarea id="opennamu_editor_doc_name" style="display: none;">''' + html.escape(name) + '''</textarea>
+                <textarea id="opennamu_editor_rev" style="display: none;">''' + rev_str + '''</textarea>
+                <button id="opennamu_preview_button" type="button" onclick="opennamu_do_editor_preview('raw');">''' + load_lang('preview') + '''</button>
+                <hr class="main_hr">
+                <textarea readonly id="opennamu_edit_textarea" class="opennamu_textarea_500"></textarea>
+                <script>opennamu_view_raw_document();</script>
+            </div>
+        '''
+        
+        if doc_acl == 'on':
+            p_data = '' + \
+                load_lang('authority_error') + \
+                '<hr class="main_hr">' + \
+                p_data
+            ''
+            
+            sub = ' (' + load_lang('edit') + ')'
+
+        return easy_minify(flask.render_template(skin_check(),
+            imp = [name, wiki_set(), wiki_custom(), wiki_css([sub, 0])],
+            data = p_data,
+            menu = menu
+        ))

+ 30 - 0
views/main_css/js/route/view_raw_document.js

@@ -0,0 +1,30 @@
+"use strict";
+
+function opennamu_view_raw_document() {
+    let name = "test";
+    if(document.getElementById('opennamu_editor_doc_name')) {
+        name = document.getElementById('opennamu_editor_doc_name').innerHTML;
+    }
+
+    let rev = "";
+    if(document.getElementById("opennamu_editor_rev")) {
+        rev = document.getElementById("opennamu_editor_rev").innerHTML;
+    }
+
+    let url = "";
+    if(rev !== '') {
+        url = "/api/raw_rev/" + rev + "/" + opennamu_do_url_encode(name);
+    } else {
+        url = "/api/raw/" + opennamu_do_url_encode(name);
+    }
+
+    fetch(url).then(function(res) {
+        return res.json();
+    }).then(function(data) {
+        if(document.getElementById("opennamu_edit_textarea")) {
+            if(data["data"]) {
+                document.getElementById("opennamu_edit_textarea").value = data["data"];
+            }
+        }
+    });
+}