فهرست منبع

JS 하나 폐지

잉여개발기 1 سال پیش
والد
کامیت
6b484f1a48
7فایلهای تغییر یافته به همراه172 افزوده شده و 202 حذف شده
  1. 1 1
      app.py
  2. 2 2
      route/__init__.py
  3. 4 1
      route/go_api_list_history.py
  4. 144 0
      route/list_history.py
  5. 0 13
      route/n_list_history.py
  6. 21 0
      route/tool/func.py
  7. 0 185
      views/main_css/js/route/list_history.js

+ 1 - 1
app.py

@@ -865,7 +865,7 @@ app.route('/api/v2/list/document/<int:num>')(api_list_title_index)
 app.route('/api/v2/list/auth')(api_list_auth)
 app.route('/api/v2/list/auth')(api_list_auth)
 app.route('/api/v2/list/markup')(api_list_markup)
 app.route('/api/v2/list/markup')(api_list_markup)
 app.route('/api/v2/list/acl/<data_type>')(api_list_acl)
 app.route('/api/v2/list/acl/<data_type>')(api_list_acl)
-app.route('/api/v2/history/<int:num>/<set_type>/<everything:doc_name>')(api_list_history)
+app.route('/api/v2/history/<int:num>/<set_type>/<everything:doc_name>')(api_list_history_exter)
 
 
 app.route('/api/v2/topic/<int:num>/<set_type>/<everything:name>')(api_topic_list)
 app.route('/api/v2/topic/<int:num>/<set_type>/<everything:name>')(api_topic_list)
 
 

+ 2 - 2
route/__init__.py

@@ -46,6 +46,7 @@ from route.list_title_index import list_title_index
 from route.list_user import list_user
 from route.list_user import list_user
 from route.list_user_check import list_user_check
 from route.list_user_check import list_user_check
 from route.list_user_check_delete import list_user_check_delete
 from route.list_user_check_delete import list_user_check_delete
+from route.list_history import list_history
 
 
 from route.login_find import login_find
 from route.login_find import login_find
 from route.login_find_email import login_find_email
 from route.login_find_email import login_find_email
@@ -160,7 +161,6 @@ from route.n_list_recent_discuss import list_recent_discuss
 from route.n_list_recent_block import list_recent_block
 from route.n_list_recent_block import list_recent_block
 from route.n_list_old_page import list_old_page
 from route.n_list_old_page import list_old_page
 from route.n_list_user_check_submit import list_user_check_submit
 from route.n_list_user_check_submit import list_user_check_submit
-from route.n_list_history import list_history
 
 
 from route.n_w_watch_list import w_watch_list
 from route.n_w_watch_list import w_watch_list
 
 
@@ -200,7 +200,7 @@ from route.go_api_list_title_index import api_list_title_index
 from route.go_api_list_acl import api_list_acl
 from route.go_api_list_acl import api_list_acl
 from route.go_api_list_auth import api_list_auth
 from route.go_api_list_auth import api_list_auth
 from route.go_api_list_markup import api_list_markup
 from route.go_api_list_markup import api_list_markup
-from route.go_api_list_history import api_list_history
+from route.go_api_list_history import api_list_history, api_list_history_exter
 
 
 from route.go_api_bbs import api_bbs
 from route.go_api_bbs import api_bbs
 from route.go_api_bbs_list import api_bbs_list
 from route.go_api_bbs_list import api_bbs_list

+ 4 - 1
route/go_api_list_history.py

@@ -7,4 +7,7 @@ async def api_list_history(num = 1, set_type = 'normal', doc_name = 'Test'):
     other_set["set_type"] = set_type
     other_set["set_type"] = set_type
     other_set["ip"] = ip_check()
     other_set["ip"] = ip_check()
     
     
-    return flask.jsonify(await python_to_golang(sys._getframe().f_code.co_name, other_set))
+    return await python_to_golang(sys._getframe().f_code.co_name, other_set)
+
+async def api_list_history_exter(num = 1, set_type = 'normal', doc_name = 'Test'):
+    return flask.jsonify(await api_list_history(num, set_type, doc_name))

+ 144 - 0
route/list_history.py

@@ -0,0 +1,144 @@
+from .tool.func import *
+
+from .go_api_list_history import api_list_history
+
+from .recent_change import recent_change_send_render
+
+async def option_lang(lang_in, lang):
+    if lang_in == 'user':
+        lang_in = lang.get('user_document')
+    elif lang_in in lang:
+        lang_in = lang[lang_in]
+    
+    return lang_in
+
+async def list_history(num = 1, set_type = 'normal', doc_name = 'Test'):
+    with get_db_connect() as conn:
+        if flask.request.method == 'POST':
+            a = flask.request.form.get('a')
+            b = flask.request.form.get('b')
+
+            return redirect(conn, f'/diff/{b}/{a}/{doc_name}')
+        else:
+            data = await api_list_history(num, set_type, doc_name)
+
+            lang = data["language"]
+            auth = data["auth"]
+            data = data["data"]
+            
+            data_html = ''
+
+            option_list = ['normal', 'edit', 'move', 'delete', 'revert', 'r1', 'setting']
+            for option in option_list:
+                label = await option_lang(option, lang)
+                data_html += f'<a href="/history_page/1/{option}/{doc_name}">({label})</a> '
+
+            date_heading = ''
+            select = ''
+
+            for for_a in range(len(data)):
+                if data[for_a][6] != "" and data[for_a][1] == "":
+                    if date_heading != '----':
+                        data_html += '<h2 class="opennamu_list_hidden">----</h2>'
+                        date_heading = '----'
+
+                    data_html += await opennamu_make_list('----', '', '', 'opennamu_list_hidden')
+                    continue
+
+                left = ''
+                rev = ''
+
+                if data[for_a][6] != "":
+                    rev += f'<span style="color: red;">r{data[for_a][0]}</span>'
+                else:
+                    rev += f'r{data[for_a][0]}'
+
+                select += f'<option value="{data[for_a][0]}">{data[for_a][0]}</option>'
+
+                if int(data[for_a][0]) > 1:
+                    before_rev = str(int(data[for_a][0]) - 1)
+                    rev = f'<a href="/diff/{before_rev}/{data[for_a][0]}/{doc_name}">{rev}</a>'
+
+                left += rev
+
+                right = f'<span id="opennamu_list_history_{for_a}_over">'
+                right += f'<a id="opennamu_list_history_{for_a}" href="javascript:void(0);">'
+                right += '<span class="opennamu_svg opennamu_svg_tool">&nbsp;</span></a>'
+                right += f'<span class="opennamu_popup_footnote" id="opennamu_list_history_{for_a}_load" style="display: none;"></span>'
+                right += '</span> | '
+
+                diff_size = data[for_a][5]
+                if diff_size == '0':
+                    right += f'<span style="color: gray;">{diff_size}</span>'
+                elif '+' in diff_size:
+                    right += f'<span style="color: green;">{diff_size}</span>'
+                else:
+                    right += f'<span style="color: red;">{diff_size}</span>'
+
+                right += ' | '
+                right += f'{data[for_a][7]} | '
+
+                edit_type = data[for_a][8] if data[for_a][8] != '' else 'edit'
+                right += f'{await option_lang(edit_type, lang)} | '
+
+                time_split = data[for_a][2].split(' ')
+                if date_heading != time_split[0]:
+                    data_html += f'<h2>{time_split[0]}</h2>'
+                    date_heading = time_split[0]
+
+                if len(time_split) > 1:
+                    right += time_split[1]
+
+                right += f'<span style="display: none;" id="opennamu_history_tool_{for_a}">'
+
+                right += f'<a href="/raw_rev/{data[for_a][0]}/{doc_name}">{lang["raw"]}</a>'
+                right += f' | <a href="/revert/{data[for_a][0]}/{doc_name}">{lang["revert"]} (r{data[for_a][0]})</a>'
+
+                if int(data[for_a][0]) > 1:
+                    before_rev = str(int(data[for_a][0]) - 1)
+                    right += f' | <a href="/revert/{before_rev}/{doc_name}">{lang["revert"]} (r{before_rev})</a>'
+                    right += f' | <a href="/diff/{before_rev}/{data[for_a][0]}/{doc_name}">{lang["compare"]}</a>'
+
+                right += f' | <a href="/history/{doc_name}">{lang["history"]}</a>'
+
+                if auth.get("owner") or auth.get("hidel"):
+                    right += f' | <a href="/history_hidden/{data[for_a][0]}/{doc_name}">{lang["hide"]}</a>'
+
+                if auth.get("owner"):
+                    right += f' | <a href="/history_delete/{data[for_a][0]}/{doc_name}">{lang["history_delete"]}</a>'
+                    right += f' | <a href="/history_send/{data[for_a][0]}/{doc_name}">{lang["send_edit"]}</a>'
+
+                right += '</span>'
+
+                bottom = ''
+                if data[for_a][4] != "":
+                    bottom = recent_change_send_render(html.escape(data[for_a][4]))
+
+                data_html += await opennamu_make_list(left, right, bottom)
+
+                data_html += f'''
+                    <script>
+                        document.getElementById('opennamu_list_history_{for_a}').addEventListener("click", function() {{
+                            opennamu_do_footnote_popover('opennamu_list_history_{for_a}', '', 'opennamu_history_tool_{for_a}', 'open');
+                        }});
+                        document.addEventListener("click", function() {{
+                            opennamu_do_footnote_popover('opennamu_list_history_{for_a}', '', 'opennamu_history_tool_{for_a}', 'close');
+                        }});
+                    </script>
+                '''
+
+            data_html+= get_next_page_bottom(conn, f'/recent_change/{{}}/{set_type}', num, data)
+            data_html = (
+                '<form method="post">'
+                f'<select name="a">{select}</select> '
+                f'<select name="b">{select}</select> '
+                f'<button type="submit">{lang["compare"]}</button>'
+                '</form>'
+                '<hr class="main_hr"></hr>' + data_html
+            )
+
+            return easy_minify(conn, flask.render_template(skin_check(conn),
+                imp = [doc_name, wiki_set(conn), await wiki_custom(conn), wiki_css(['(' + get_lang(conn, 'history') + ')', 0])],
+                data = data_html,
+                menu = [['other', get_lang(conn, 'return')], ['history_add/' + url_pas(doc_name), get_lang(conn, 'history_add')], ['history_reset/' + url_pas(doc_name), get_lang(conn, 'history_reset')]]
+            ))

+ 0 - 13
route/n_list_history.py

@@ -1,13 +0,0 @@
-from .tool.func import *
-
-async def list_history(num = 1, set_type = 'normal', doc_name = 'Test'):
-    with get_db_connect() as conn:
-        return easy_minify(conn, flask.render_template(skin_check(conn),
-            imp = [doc_name, wiki_set(conn), await wiki_custom(conn), wiki_css(['(' + get_lang(conn, 'history') + ')', 0])],
-            data = '' + \
-                '<div id="opennamu_list_history"></div>' + \
-                '<script defer src="/views/main_css/js/route/list_history.js' + cache_v() + '"></script>' + \
-                '<script>window.addEventListener("DOMContentLoaded", function() { opennamu_list_history(); });</script>' + \
-            '',
-            menu = [['other', get_lang(conn, 'return')], ['history_add/' + url_pas(doc_name), get_lang(conn, 'history_add')], ['history_reset/' + url_pas(doc_name), get_lang(conn, 'history_reset')]]
-        ))

+ 21 - 0
route/tool/func.py

@@ -172,6 +172,27 @@ async def python_to_golang(func_name, other_set = {}):
                     raise Exception(f"API returned error: {data}")
                     raise Exception(f"API returned error: {data}")
                 else:
                 else:
                     return data
                     return data
+                
+async def opennamu_make_list(left = '', right = '', bottom = '', class_name = ''):
+    data_html = f'<span class="{class_name}">'
+    data_html += '<div class="opennamu_recent_change">'
+    data_html += left
+
+    data_html += '<div style="float: right;">'
+    data_html += right
+    data_html += '</div>'
+
+    data_html += '<div style="clear: both;"></div>'
+
+    if bottom != '':
+        data_html += '<hr>'
+        data_html += bottom
+
+    data_html += '</div>'
+    data_html += '<hr class="main_hr">'
+    data_html += '</span>'
+
+    return data_html
 
 
 # Func-init
 # Func-init
 def get_init_set_list(need = 'all'):
 def get_init_set_list(need = 'all'):

+ 0 - 185
views/main_css/js/route/list_history.js

@@ -1,185 +0,0 @@
-"use strict";
-
-function opennamu_list_history_post() {
-    const url = window.location.pathname;
-    const url_split = url.split('/');
-
-    let doc_name = '';
-    if(url_split[1] === 'history') {
-        doc_name = url_split.slice(2).join('/');
-    } else {
-        doc_name = url_split.slice(4).join('/');
-    }
-
-    let a = document.getElementById('opennamu_list_history_a').value;
-    let b = document.getElementById('opennamu_list_history_b').value;
-
-    window.location.pathname = '/diff/' + b + '/' + a + '/' + doc_name;
-}
-
-function opennamu_list_history() {
-    const option_lang = function(lang_in, lang) {
-        if(lang_in === 'user') {
-            lang_in = lang['user_document'];
-        } else if(lang[lang_in] !== undefined) {
-            lang_in = lang[lang_in];
-        }
-    
-        return lang_in;
-    }
-
-    const url = window.location.pathname;
-    const url_split = url.split('/');
-    
-    let set_type = '';
-    let num = '';
-    let doc_name = '';
-    if(url_split[1] === 'history') {
-        set_type = 'normal';
-        num = '1';
-        doc_name = url_split.slice(2).join('/');
-    } else {
-        set_type = url_split[3];
-        num = url_split[2];
-        doc_name = url_split.slice(4).join('/');
-    }
-
-    fetch('/api/v2/history/' + num + '/' + set_type + '/' + doc_name).then(function(res) {
-        return res.json();
-    }).then(function(data) {
-        let lang = data["language"];
-        let auth = data["auth"];
-        data = data["data"];
-        console.log(auth);
-
-        let data_html = '';
-
-        data_html += '<style id="opennamu_list_hidden_style">.opennamu_list_hidden { display: none; }</style>';
-        data_html += '<label><input type="checkbox" onclick="opennamu_list_hidden_remove();" checked> ' + lang['remove_hidden'] + '</label>';
-        data_html += '<hr class="main_hr">';
-
-        let option_list = ['normal', 'edit', 'move', 'delete', 'revert', 'r1', 'setting'];
-        for(let for_a = 0; for_a < option_list.length; for_a++) {
-            data_html += '<a href="/history_page/1/' + option_list[for_a] + '/' + doc_name + '">(' + option_lang(option_list[for_a], lang) + ')</a> ';
-        }
-
-        let date_heading = '';
-        let select = '';
-        for(let for_a = 0; for_a < data.length; for_a++) {
-            if(data[for_a][6] !== "" && data[for_a][1] === "") {
-                if(date_heading !== '----') {
-                    data_html += '<h2 class="opennamu_list_hidden">----</h2>';
-                    date_heading = '----';
-                }
-
-                data_html += opennamu_make_list('----', '', '', 'opennamu_list_hidden');
-
-                continue;
-            }
-
-            let left = '';
-            let rev = '';
-            if(data[for_a][6] !== "") {
-                rev += '<span style="color: red;">r' + data[for_a][0] + '</span>';
-            } else {
-                rev += 'r' + data[for_a][0];
-            }
-
-            select += '<option value="' + data[for_a][0] + '">' + data[for_a][0] + '</option>';
-
-            if(Number(data[for_a][0]) > 1) {
-                let before_rev = String(Number(data[for_a][0]) - 1);
-                rev = '<a href="/diff/' + before_rev + '/' + data[for_a][0] + '/' + doc_name + '">' + rev + '</a>';
-            }
-
-            left += rev;
-
-            let right = '<span id="opennamu_list_history_' + String(for_a) + '_over">';
-
-            right += '<a id="opennamu_list_history_' + String(for_a) + '" href="javascript:void(0);">';
-            right += '<span class="opennamu_svg opennamu_svg_tool">&nbsp;</span>';
-            right += '</a>';
-            right += '<span class="opennamu_popup_footnote" id="opennamu_list_history_' + String(for_a) + '_load" style="display: none;"></span>';
-            right += '</span>';
-            right += ' | ';
-            
-            if(data[for_a][5] === '0') {
-                right += '<span style="color: gray;">' + data[for_a][5] + '</span>';
-            } else if(data[for_a][5].match(/\+/)) {
-                right += '<span style="color: green;">' + data[for_a][5] + '</span>';
-            } else {
-                right += '<span style="color: red;">' + data[for_a][5] + '</span>';
-            }
-            right += ' | ';
-            
-            right += data[for_a][7] + ' | ';
-            
-            let edit_type = 'edit';
-            if(data[for_a][8] !== '') {
-                edit_type = data[for_a][8];
-            }
-
-            right += option_lang(edit_type, lang) + ' | ';
-
-            let time_split = data[for_a][2].split(' ');
-
-            if(date_heading !== time_split[0]) {
-                data_html += '<h2>' + time_split[0] + '</h2>';
-                date_heading = time_split[0];
-            }
-
-            if(time_split.length > 1) {
-                right += time_split[1];
-            }
-            
-            right += '<span style="display: none;" id="opennamu_history_tool_' + String(for_a) + '">';
-
-            right += '<a href="/raw_rev/' + data[for_a][0] + '/' + doc_name + '">' + lang['raw'] + '</a>';
-            right += ' | <a href="/revert/' + data[for_a][0] + '/' + doc_name + '">' + lang['revert'] + ' (r' + data[for_a][0] + ')</a>';
-            if(Number(data[for_a][0]) > 1) {
-                let before_rev = String(Number(data[for_a][0]) - 1);
-                right += ' | <a href="/revert/' + before_rev + '/' + doc_name + '">' + lang['revert'] + ' (r' + before_rev + ')</a>';
-                right += ' | <a href="/diff/' + before_rev + '/' + data[for_a][0] + '/' + doc_name + '">' + lang['compare'] + '</a>';
-            }
-            right += ' | <a href="/history/' + doc_name + '">' + lang['history'] + '</a>';
-
-            if(auth["owner"] === true || auth["hidel"] === true) {
-                right += ' | <a href="/history_hidden/' + data[for_a][0] + '/' + doc_name + '">' + lang['hide'] + '</a>';
-            }
-
-            if(auth["owner"] === true) {
-                right += ' | <a href="/history_delete/' + data[for_a][0] + '/' + doc_name + '">' + lang['history_delete'] + '</a>';
-                right += ' | <a href="/history_send/' + data[for_a][0] + '/' + doc_name + '">' + lang['send_edit'] + '</a>';
-            }
-
-            right += '</span>';
-            
-            let bottom = '';
-            if(data[for_a][4] !== "") {
-                bottom = opennamu_send_render(opennamu_xss_filter(data[for_a][4]));
-            }
-
-            data_html += opennamu_make_list(left, right, bottom);
-        }
-
-        data_html += opennamu_page_control('/recent_change/{}/' + set_type, Number(num), data.length);
-        data_html = '' +
-            '<form method="post">' +
-                '<select id="opennamu_list_history_a">' + select + '</select> <select id="opennamu_list_history_b">' + select + '</select> ' +
-                '<button onclick="opennamu_list_history_post();" type="button">' + lang["compare"] + '</button>' +
-            '</form>' +
-            '<hr class="main_hr"></hr>' +
-        '' + data_html;
-
-        document.getElementById('opennamu_list_history').innerHTML = data_html;
-
-        for(let for_a = 0; for_a < data.length; for_a++) {
-            if(data[for_a][6] !== "" && data[for_a][1] === "") {
-                continue;
-            }
-
-            document.getElementById('opennamu_list_history_' + String(for_a)).addEventListener("click", function() { opennamu_do_footnote_popover('opennamu_list_history_' + String(for_a), '', 'opennamu_history_tool_' + String(for_a), 'open'); });
-            document.addEventListener("click", function() { opennamu_do_footnote_popover('opennamu_list_history_' + String(for_a), '', 'opennamu_history_tool_' + String(for_a), 'close'); });
-        }
-    });
-}