Browse Source

미리보기 다시 JS로 이전

https://github.com/openNAMU/openNAMU/issues/1601
잉여개발기 (SPDV) 2 years ago
parent
commit
5a3da2025e

+ 0 - 8
app.py

@@ -389,7 +389,6 @@ app.route('/history_hidden/<int(signed = True):rev>/<everything:name>')(recent_h
 app.route('/history_send/<int(signed = True):rev>/<everything:name>', methods = ['POST', 'GET'])(recent_history_send)
 app.route('/history_reset/<everything:name>', methods = ['POST', 'GET'])(recent_history_reset)
 app.route('/history_add/<everything:name>', methods = ['POST', 'GET'])(recent_history_add)
-app.route('/history_add_preview/<everything:name>', defaults = { 'do_type' : 'preview' }, methods = ['POST'])(recent_history_add)
 
 # Func-view
 app.route('/xref/<everything:name>')(view_xref)
@@ -414,10 +413,8 @@ app.route('/random', defaults = { 'db_set' : db_set_str })(view_random)
 
 # Func-edit
 app.route('/edit/<everything:name>', methods = ['POST', 'GET'])(edit)
-app.route('/edit_preview/<everything:name>', defaults = { 'do_type' : 'preview' }, methods = ['POST'])(edit)
 app.route('/edit_from/<everything:name>', defaults = { 'do_type' : 'load' })(edit)
 app.route('/edit_section/<int:section>/<everything:name>', methods = ['POST', 'GET'])(edit)
-app.route('/edit_section_preview/<int:section>/<everything:name>', defaults = { 'do_type' : 'preview' }, methods = ['POST'])(edit)
 
 app.route('/upload', methods = ['POST', 'GET'])(edit_upload)
 
@@ -439,7 +436,6 @@ app.route('/recent_discuss/open', defaults = { 'tool' : 'open' })(recent_discuss
 
 app.route('/thread/<int:topic_num>', methods = ['POST', 'GET'])(topic)
 app.route('/thread/0/<everything:doc_name>', defaults = { 'topic_num' : '0' }, methods = ['POST', 'GET'])(topic)
-app.route('/thread_preview/<int:topic_num>', defaults = { 'do_type' : 'preview' }, methods = ['POST'])(topic)
 app.route('/topic/<everything:name>', methods = ['POST', 'GET'])(topic_list)
 
 app.route('/thread/<int:topic_num>/tool')(topic_tool)
@@ -533,17 +529,13 @@ app.route('/bbs/make', methods = ['POST', 'GET'])(bbs_make)
 app.route('/bbs/w/<int:bbs_num>')(bbs_w)
 app.route('/bbs/set/<int:bbs_num>', methods = ['POST', 'GET'])(bbs_w_set)
 app.route('/bbs/edit/<int:bbs_num>', methods = ['POST', 'GET'])(bbs_w_edit)
-app.route('/bbs/edit/preview/<int:bbs_num>', methods = ['POST', 'GET'], defaults = { 'do_type' : 'preview' })(bbs_w_edit)
 app.route('/bbs/w/<int:bbs_num>/<int:post_num>', methods = ['POST', 'GET'])(bbs_w_post)
 app.route('/bbs/raw/<int:bbs_num>/<int:post_num>')(view_raw_2)
 app.route('/bbs/tool/<int:bbs_num>/<int:post_num>')(bbs_w_tool)
 app.route('/bbs/edit/<int:bbs_num>/<int:post_num>', methods = ['POST', 'GET'])(bbs_w_edit)
-app.route('/bbs/edit/preview/<int:bbs_num>/<int:post_num>', methods = ['POST', 'GET'], defaults = { 'do_type' : 'preview' })(bbs_w_edit)
-app.route('/bbs/w/preview/<int:bbs_num>/<int:post_num>', methods = ['POST'], defaults = { 'do_type' : 'preview' })(bbs_w_post)
 app.route('/bbs/tool/<int:bbs_num>/<int:post_num>/<comment_num>')(bbs_w_comment_tool)
 app.route('/bbs/raw/<int:bbs_num>/<int:post_num>/<comment_num>')(view_raw_2)
 app.route('/bbs/edit/<int:bbs_num>/<int:post_num>/<comment_num>', methods = ['POST', 'GET'])(bbs_w_edit)
-app.route('/bbs/edit/preview/<int:bbs_num>/<int:post_num>/<comment_num>', methods = ['POST', 'GET'])(bbs_w_edit)
 
 # Func-api
 app.route('/api/w/<everything:name>/doc_tool/<tool>/doc_rev/<int(signed = True):rev>')(api_w)

+ 4 - 0
route/api_preview.py

@@ -0,0 +1,4 @@
+from .tool.func import *
+
+def api_preview():
+    pass

+ 18 - 56
route/bbs_w_edit.py

@@ -2,9 +2,10 @@ from .tool.func import *
 
 from .api_bbs_w_post import api_bbs_w_post
 from .api_bbs_w_comment_one import api_bbs_w_comment_one
+
 from .edit import edit_editor
 
-def bbs_w_edit(bbs_num = '', post_num = '', comment_num = '', do_type = ''):
+def bbs_w_edit(bbs_num = '', post_num = '', comment_num = ''):
     with get_db_connect() as conn:
         curs = conn.cursor()
 
@@ -37,7 +38,7 @@ def bbs_w_edit(bbs_num = '', post_num = '', comment_num = '', do_type = ''):
         
         i_list = ['post_view_acl', 'post_comment_acl']
 
-        if flask.request.method == 'POST' and do_type != 'preview':
+        if flask.request.method == 'POST':
             if captcha_post(flask.request.form.get('g-recaptcha-response', flask.request.form.get('g-recaptcha', ''))) == 1:
                 return re_error('/error/13')
             else:
@@ -86,57 +87,26 @@ def bbs_w_edit(bbs_num = '', post_num = '', comment_num = '', do_type = ''):
         else:
             option_display = ''
 
-            d_list = ['' for _ in range(0, len(i_list))]
-            if do_type == 'preview':
-                title = flask.request.form.get('title', '')
-                data = flask.request.form.get('content', '')
-                data = data.replace('\r', '')
-                data_preview = render_set(
-                    doc_data = data,
-                    data_type = 'thread',
-                    data_in = 'bbs'
-                ) + '<hr>'
-                for for_a in range(0, len(i_list)):
-                    d_list[for_a] = flask.request.form.get(i_list[for_a], 'normal')
+            if comment_num != '':
+                temp_dict = json.loads(api_bbs_w_comment_one(bbs_num_str + '-' + post_num_str + '-' + comment_num).data)
+
+                title = ''
+                data = temp_dict['comment']
+                option_display = 'display: none;'
+            elif post_num == '':
+                title = ''
+                data = ''
             else:
-                if comment_num != '':
-                    temp_dict = json.loads(api_bbs_w_comment_one(bbs_num_str + '-' + post_num_str + '-' + comment_num).data)
-
-                    title = ''
-                    data = temp_dict['comment']
-                    data_preview = ''
-                    option_display = 'display: none;'
-                elif post_num == '':
-                    title = ''
-                    data = ''
-                    data_preview = ''
-                else:
-                    temp_dict = json.loads(api_bbs_w_post(bbs_num_str + '-' + post_num_str).data)
-
-                    title = temp_dict['title']
-                    data = temp_dict['data']
-                    data_preview = ''
+                temp_dict = json.loads(api_bbs_w_post(bbs_num_str + '-' + post_num_str).data)
+
+                title = temp_dict['title']
+                data = temp_dict['data']
 
             acl_div = ['' for _ in range(0, len(i_list))]
             acl_list = get_acl_list()
             for for_a in range(0, len(i_list)):
                 for data_list in acl_list:
-                    if data_list == d_list[for_a]:
-                        check = 'selected="selected"'
-                    else:
-                        check = ''
-
-                    acl_div[for_a] += '<option value="' + data_list + '" ' + check + '>' + (data_list if data_list != '' else 'normal') + '</option>'
-            
-            if comment_num != '':
-                form_action = 'formaction="/bbs/edit/' + bbs_num_str + '/' + post_num_str + '/' + url_pas(comment_num) + '"'
-                form_action_preview = 'formaction="/bbs/edit/preview/' + bbs_num_str + '/' + post_num_str + '/' + url_pas(comment_num) + '"'
-            elif post_num == '':
-                form_action = 'formaction="/bbs/edit/' + bbs_num_str + '"'
-                form_action_preview = 'formaction="/bbs/edit/preview/' + bbs_num_str + '"'
-            else:
-                form_action = 'formaction="/bbs/edit/' + bbs_num_str + '/' + post_num_str + '"'
-                form_action_preview = 'formaction="/bbs/edit/preview/' + bbs_num_str + '/' + post_num_str + '"'
+                    acl_div[for_a] += '<option value="' + data_list + '">' + (data_list if data_list != '' else 'normal') + '</option>'
     
             editor_top_text = '<a href="/edit_filter">(' + load_lang('edit_filter_rule') + ')</a>'
 
@@ -158,15 +128,7 @@ def bbs_w_edit(bbs_num = '', post_num = '', comment_num = '', do_type = ''):
                         <hr style="''' + option_display + '''" class="main_hr">
 
                         ''' + edit_editor(curs, ip, data, 'bbs') + '''
-                        <hr class="main_hr">
-                        
-                        ''' + captcha_get() + ip_warning() + '''
-                        
-                        <button id="opennamu_save_button" type="submit" ''' + form_action + ''' onclick="do_monaco_to_textarea(); do_stop_exit_release();">''' + load_lang('save') + '''</button>
-                        <button id="opennamu_preview_button" type="submit" ''' + form_action_preview + ''' onclick="do_monaco_to_textarea(); do_stop_exit_release();">''' + load_lang('preview') + '''</button>
-                    
-                        <hr class="main_hr">
-                        <div id="opennamu_preview_area">''' + data_preview + '''</div>
+
                         <!--
                         <div style="''' + option_display + '''">
                             ''' + render_simple_set('''

+ 4 - 47
route/bbs_w_post.py

@@ -58,7 +58,7 @@ def bbs_w_post_comment(user_id, sub_code, comment_num, bbs_num_str, post_num_str
 
     return (comment_data, comment_select, comment_count, comment_add_count)
 
-def bbs_w_post(bbs_num = '', post_num = '', do_type = ''):
+def bbs_w_post(bbs_num = '', post_num = ''):
     with get_db_connect() as conn:
         curs = conn.cursor()
 
@@ -83,7 +83,7 @@ def bbs_w_post(bbs_num = '', post_num = '', do_type = ''):
         if not db_data_2:
             return redirect('/bbs/main')
         elif db_data_2[0][0] == 'thread':
-            if flask.request.method == 'POST' and do_type != 'preview':
+            if flask.request.method == 'POST':
                 if bbs_comment_acl == 1:
                     return redirect('/bbs/set/' + bbs_num_str)
                 
@@ -122,16 +122,6 @@ def bbs_w_post(bbs_num = '', post_num = '', do_type = ''):
                     return re_error('/ban')
 
                 text = ''
-                data_preview = ''
-                if do_type == 'preview':
-                    text = flask.request.form.get('content', '')
-                    text = text.replace('\r', '')
-
-                    data_preview = render_set(
-                        doc_data = text,
-                        data_type = 'thread',
-                        data_in = 'bbs_comment_preview'
-                    )
 
                 date = ''
                 date += temp_dict['date']
@@ -177,23 +167,9 @@ def bbs_w_post(bbs_num = '', post_num = '', do_type = ''):
                         color = color
                     )
 
-                bbs_comment_form = ''
-                if bbs_comment_acl == 0:
-                    bbs_comment_form += '''                        
-                        ''' + edit_editor(curs, ip, text, 'bbs_comment') + '''
-                        <hr class="main_hr">
-                        
-                        ''' + captcha_get() + ip_warning() + '''
-
-                        <button id="opennamu_save_button" formaction="/bbs/w/''' + bbs_num_str + '''/''' + post_num_str + '''" type="submit" onclick="do_monaco_to_textarea(); do_stop_exit_release();">''' + load_lang('send') + '''</button>
-                        <button id="opennamu_preview_button" formaction="/bbs/w/preview/''' + bbs_num_str + '''/''' + post_num_str + '''#opennamu_edit_textarea" type="submit" onclick="do_monaco_to_textarea(); do_stop_exit_release();">''' + load_lang('preview') + '''</button>
-                        <hr class="main_hr">
-                    '''
-
                 data += '''
                     <form method="post">
-                        ''' + bbs_comment_form + '''
-                        ''' + data_preview + '''
+                        ''' + (edit_editor(curs, ip, text, 'bbs_comment') if bbs_comment_acl == 0 else '') + '''
                     </form>
                 '''
 
@@ -204,7 +180,7 @@ def bbs_w_post(bbs_num = '', post_num = '', do_type = ''):
                 ))
         else:
             # db_data_2[0][0] == 'comment'
-            if flask.request.method == 'POST' and do_type != 'preview':
+            if flask.request.method == 'POST':
                 if bbs_comment_acl == 1:
                     return redirect('/bbs/set/' + bbs_num_str)
                 
@@ -275,17 +251,6 @@ def bbs_w_post(bbs_num = '', post_num = '', do_type = ''):
                     
                 text = ''
                 comment_num = ''
-                data_preview = ''
-                if do_type == 'preview':
-                    text = flask.request.form.get('content', '')
-                    text = text.replace('\r', '')
-
-                    comment_num = flask.request.form.get('comment_select', '')
-
-                    data_preview = render_set(
-                        doc_data = text,
-                        data_in = 'bbs_comment_preview'
-                    )
 
                 date = ''
                 date += '<a href="javascript:opennamu_change_comment(\'0\');">(' + load_lang('comment') + ')</a> '
@@ -339,19 +304,11 @@ def bbs_w_post(bbs_num = '', post_num = '', do_type = ''):
                         <hr class="main_hr">
                         
                         ''' + edit_editor(curs, ip, text, 'bbs_comment') + '''
-                        <hr class="main_hr">
-                        
-                        ''' + captcha_get() + ip_warning() + '''
-
-                        <button id="opennamu_save_button" formaction="/bbs/w/''' + bbs_num_str + '''/''' + post_num_str + '''" type="submit" onclick="do_monaco_to_textarea(); do_stop_exit_release();">''' + load_lang('send') + '''</button>
-                        <button id="opennamu_preview_button" formaction="/bbs/w/preview/''' + bbs_num_str + '''/''' + post_num_str + '''#opennamu_edit_textarea" type="submit" onclick="do_monaco_to_textarea(); do_stop_exit_release();">''' + load_lang('preview') + '''</button>
-                        <hr class="main_hr">
                     '''
 
                 data += '''
                     <form method="post">
                         ''' + bbs_comment_form + '''
-                        ''' + data_preview + '''
                     </form>
                     <script src="/views/main_css/js/route/bbs_w_post.js"></script>
                 '''

+ 24 - 38
route/edit.py

@@ -23,7 +23,7 @@ def edit_timeout(func, args = (), timeout = 3):
         pool.join()
         return 0
         
-def edit_editor(curs, ip, data_main = '', do_type = 'edit'):
+def edit_editor(curs, ip, data_main = '', do_type = 'edit', addon = ''):
     monaco_editor_top = ''
     editor_display = ''
     add_get_file = ''
@@ -81,11 +81,21 @@ def edit_editor(curs, ip, data_main = '', do_type = 'edit'):
         <div id="opennamu_monaco_editor" class="''' + textarea_size + '''" ''' + monaco_display + '''></div>
         <textarea id="opennamu_edit_textarea" ''' + editor_display + ''' class="''' + textarea_size + '''" name="content" placeholder="''' + p_text + '''">''' + html.escape(data_main) + '''</textarea>
         <hr class="main_hr">
+        
+        ''' + captcha_get() + ip_warning() + addon + '''
+        <hr class="main_hr">
+
         <script>
             do_stop_exit();
             do_paste_image('opennamu_edit_textarea', 'opennamu_monaco_editor');
             ''' + add_script + '''
         </script>
+                        
+        <button id="opennamu_save_button" type="submit" onclick="do_monaco_to_textarea(); do_stop_exit_release();">''' + load_lang('send') + '''</button>
+        <button id="opennamu_preview_button" type="button" onclick="do_monaco_to_textarea(); opennamu_do_editor_preview();">''' + load_lang('preview') + '''</button>
+        <hr class="main_hr">
+
+        <div id="opennamu_preview_area"></div>
     '''
 
 def edit(name = 'Test', section = 0, do_type = ''):
@@ -107,7 +117,6 @@ def edit(name = 'Test', section = 0, do_type = ''):
         post_ver = flask.request.form.get('ver', '')
         if flask.request.method == 'POST':
             edit_repeat = 'error' if post_ver != doc_ver else 'post'
-            edit_repeat = 'error' if do_type == 'preview' else 'post'
         else:
             edit_repeat = 'get'
         
@@ -215,7 +224,6 @@ def edit(name = 'Test', section = 0, do_type = ''):
             doc_section_edit_apply = 'X'
             data_section = ''
             data_section_where = ''
-            data_preview = ''
 
             if edit_repeat == 'get':
                 if do_type == 'load':
@@ -285,36 +293,22 @@ def edit(name = 'Test', section = 0, do_type = ''):
 
                 doc_ver = flask.request.form.get('ver', '')
 
-                if do_type != 'preview':
-                    warning_edit = load_lang('exp_edit_conflict') + ' '
-        
-                    if flask.request.form.get('ver', '0') == '0':
-                        warning_edit += '<a href="/raw/' + url_pas(name) + '">(r' + doc_ver + ')</a>'
-                    else:
-                        warning_edit += '' + \
-                            '<a href="/diff/' + flask.request.form.get('ver', '1') + '/' + doc_ver + '/' + url_pas(name) + '">' + \
-                                '(r' + doc_ver + ')' + \
-                            '</a>' + \
-                        ''
-        
-                    warning_edit += '<hr class="main_hr">'
-                    editor_top_text = warning_edit + editor_top_text
+                warning_edit = load_lang('exp_edit_conflict') + ' '
+    
+                if flask.request.form.get('ver', '0') == '0':
+                    warning_edit += '<a href="/raw/' + url_pas(name) + '">(r' + doc_ver + ')</a>'
                 else:
-                    data_preview = render_set(
-                        doc_name = name, 
-                        doc_data = data,
-                        data_type = 'from'
-                    )
+                    warning_edit += '' + \
+                        '<a href="/diff/' + flask.request.form.get('ver', '1') + '/' + doc_ver + '/' + url_pas(name) + '">' + \
+                            '(r' + doc_ver + ')' + \
+                        '</a>' + \
+                    ''
+    
+                warning_edit += '<hr class="main_hr">'
+                editor_top_text = warning_edit + editor_top_text
 
             if data_section == '':
                 data_section = data
-
-            if section == '':
-                form_action = 'formaction="/edit/' + url_pas(name) + '"'
-                form_action_preview = 'formaction="/edit_preview/' + url_pas(name) + '"'
-            else:
-                form_action = 'formaction="/edit_section/' + str(section) + '/' + url_pas(name) + '"'
-                form_action_preview = 'formaction="/edit_section_preview/' + str(section) + '/' + url_pas(name) + '"'
     
             editor_top_text += '<a href="/edit_filter">(' + load_lang('edit_filter_rule') + ')</a>'
     
@@ -332,19 +326,11 @@ def edit(name = 'Test', section = 0, do_type = ''):
 
                         <input style="display: none;" name="ver" value="''' + doc_ver + '''">
                         
-                        ''' + edit_editor(curs, ip, data_section) + '''
-
                         <input placeholder="''' + load_lang('why') + '''" name="send">
                         <hr class="main_hr">
                         
-                        ''' + captcha_get() + ip_warning() + get_edit_text_bottom_check_box() + get_edit_text_bottom() + '''
-                        
-                        <button id="opennamu_save_button" type="submit" ''' + form_action + ''' onclick="do_monaco_to_textarea(); do_stop_exit_release();">''' + load_lang('save') + '''</button>
-                        <button id="opennamu_preview_button" type="submit" ''' + form_action_preview + ''' onclick="do_monaco_to_textarea(); do_stop_exit_release();">''' + load_lang('preview') + '''</button>
+                        ''' + edit_editor(curs, ip, data_section, addon = get_edit_text_bottom_check_box() + get_edit_text_bottom()) + '''
                     </form>
-                    
-                    <hr class="main_hr">
-                    <div id="opennamu_preview_area">''' + data_preview + '''</div>
                 ''',
                 menu = [
                     ['w/' + url_pas(name), load_lang('return')],

+ 8 - 9
route/edit_revert.py

@@ -71,20 +71,19 @@ def edit_revert(name, num):
             return redirect('/w/' + url_pas(name))
         else:
             if data:
-                preview = '<pre>' + html.escape(data[0][0]) + '</pre>'
+                preview = '<hr class="main_hr"><pre>' + html.escape(data[0][0]) + '</pre>'
             else:
                 preview = ''
             
             return easy_minify(flask.render_template(skin_check(),
                 imp = [name, wiki_set(), wiki_custom(), wiki_css(['(r' + str(num) + ') (' + load_lang('revert') + ')', 0])],
-                data =  '''
-                        <form method="post">
-                            <input placeholder="''' + load_lang('why') + '''" name="send" type="text">
-                            <hr class="main_hr">
-                            ''' + captcha_get() + ip_warning() + get_edit_text_bottom_check_box() + get_edit_text_bottom() + '''
-                            <button type="submit">''' + load_lang('revert') + '''</button>
-                        </form>
+                data = '''
+                    <form method="post">
+                        <input placeholder="''' + load_lang('why') + '''" name="send" type="text">
                         <hr class="main_hr">
-                        ''' + preview,
+                        ''' + captcha_get() + ip_warning() + get_edit_text_bottom_check_box() + get_edit_text_bottom() + '''
+                        <button type="submit">''' + load_lang('revert') + '''</button>
+                    </form>
+                ''' + preview,
                 menu = [['history/' + url_pas(name), load_lang('history')], ['recent_changes', load_lang('recent_change')]]
             ))

+ 6 - 4
route/main_setting_head.py

@@ -39,10 +39,15 @@ def main_setting_head(num, skin_name = '', set_preview = 0):
             else:
                 return redirect('/setting/' + end_r + '/' + skin_name)
         else:
+            title = ''
+            start = ''
+            form_action = ''
+            data_preview = ''
+            plus = ''
+
             if num == 4:
                 curs.execute(db_change("select data from other where name = 'body'"))
                 title = '_body'
-                start = ''
                 form_action = 'formaction="/setting/body/top"'
                 data_preview = flask.request.form.get('content', '') if set_preview == 1 else ''
                 plus = '''
@@ -53,7 +58,6 @@ def main_setting_head(num, skin_name = '', set_preview = 0):
             elif num == 7:
                 curs.execute(db_change("select data from other where name = 'bottom_body'"))
                 title = '_bottom_body'
-                start = ''
                 data_preview = flask.request.form.get('content', '') if set_preview == 1 else ''
                 form_action = 'formaction="/setting/body/bottom"'
                 plus = '''
@@ -75,8 +79,6 @@ def main_setting_head(num, skin_name = '', set_preview = 0):
                     </span>
                     <hr class="main_hr">
                 '''
-                form_action = ''
-                plus = ''
 
             if set_preview == 1:
                 data = data_preview

+ 9 - 36
route/recent_history_add.py

@@ -1,5 +1,7 @@
 from .tool.func import *
 
+from .edit import edit_editor
+
 def recent_history_add(name = 'Test', do_type = ''):
     with get_db_connect() as conn:
         curs = conn.cursor()
@@ -8,7 +10,7 @@ def recent_history_add(name = 'Test', do_type = ''):
         if admin_check() != 1:
             return re_error('/ban')
 
-        if flask.request.method == 'POST' and do_type == '':
+        if flask.request.method == 'POST':
             admin_check(None, 'history_add (' + name + ')')
 
             today = get_time()
@@ -29,48 +31,19 @@ def recent_history_add(name = 'Test', do_type = ''):
             conn.commit()
 
             return redirect('/history/' + url_pas(name))
-        else:
-            curs.execute(db_change('select data from other where name = "edit_help"'))
-            sql_d = curs.fetchall()
-            p_text = html.escape(sql_d[0][0]) if sql_d and sql_d[0][0] != '' else load_lang('default_edit_help')
-
-            send = ''
-            get_ip = ''
-            data = ''
-            data_preview = ''
-            if do_type == 'preview':
-                data = flask.request.form.get('content', '')
-                data = data.replace('\r', '')
-
-                send = flask.request.form.get('send', '')
-                get_ip = flask.request.form.get('get_ip', '')
-
-                data_preview = render_set(
-                    doc_name = name, 
-                    doc_data = data
-                )
-            
+        else:            
             return easy_minify(flask.render_template(skin_check(),
                 imp = [load_lang('history_add'), wiki_set(), wiki_custom(), wiki_css(['(' + name + ')', 0])],
                 data = '''
-                    <form method="post">                        
-                        <div>''' + edit_button('opennamu_edit_textarea') + '''</div>
-                        
-                        <textarea id="opennamu_edit_textarea" class="opennamu_textarea_500" name="content" placeholder="''' + p_text + '''">''' + html.escape(data) + '''</textarea>
+                    <form method="post">
+                        <input placeholder="''' + load_lang('why') + '''" name="send">
                         <hr class="main_hr">
                         
-                        <input placeholder="''' + load_lang('why') + '''" name="send" value="''' + html.escape(send) + '''">
+                        <input placeholder="''' + load_lang('name') + '''" name="get_ip">
                         <hr class="main_hr">
-                        
-                        <input placeholder="''' + load_lang('name') + '''" name="get_ip" value="''' + html.escape(get_ip) + '''">
-                        <hr class="main_hr">
-                        
-                        <button id="opennamu_save_button" formaction="/history_add/''' + url_pas(name) + '''" type="submit">''' + load_lang('save') + '''</button>
-                        <button id="opennamu_preview_button" formaction="/history_add_preview/''' + url_pas(name) + '''" type="submit">''' + load_lang('preview') + '''</button>
+
+                        ''' + edit_editor(curs, ip) + '''
                     </form>
-                    
-                    <hr class="main_hr">
-                    <div id="opennamu_preview_area">''' + data_preview + '''</div>
                 ''',
                 menu = [['history/' + url_pas(name), load_lang('return')]]
             ))

+ 1 - 0
route/tool/func.py

@@ -1146,6 +1146,7 @@ def wiki_css(data):
     
     # Route JS
     data_css += '<script src="/views/main_css/js/route/editor.js?ver=' + data_css_ver + '"></script>'
+    data_css += '<script src="/views/main_css/js/route/editor_sub.js?ver=' + data_css_ver + '"></script>'
     data_css += '<script src="/views/main_css/js/route/render.js?ver=' + data_css_ver + '"></script>'
     data_css += '<script src="/views/main_css/js/route/topic.js?ver=' + data_css_ver + '"></script>'
     

+ 2 - 24
route/topic.py

@@ -100,18 +100,13 @@ def topic(topic_num = 0, do_type = '', doc_name = 'Test'):
             return redirect('/thread/' + topic_num + '#' + num)
         else:
             thread_data = ''
-            thread_data_preview = ''
 
             if topic_num == '0':
                 name = load_lang('make_new_topic')
                 sub = load_lang('make_new_topic')
 
-                if do_type == 'preview':
-                    name_value = flask.request.form.get('topic', '')
-                    sub_value = flask.request.form.get('title', '')
-                else:
-                    name_value = doc_name
-                    sub_value = ''
+                name_value = doc_name
+                sub_value = ''
             else:
                 curs.execute(db_change("select title, sub from rd where code = ?"), [topic_num])
                 name = curs.fetchall()
@@ -124,14 +119,6 @@ def topic(topic_num = 0, do_type = '', doc_name = 'Test'):
                 else:
                     return redirect('/')
 
-            if do_type == 'preview':
-                thread_data = flask.request.form.get('content', 'Test')
-                thread_data = thread_data.replace('\r', '')
-
-                thread_data_preview = render_set(
-                    doc_data = thread_data
-                )
-
             acl_display = 'display: none;' if topic_acl == 1 else ''
             name_display = 'display: none;' if topic_num != '0' else ''
 
@@ -182,16 +169,7 @@ def topic(topic_num = 0, do_type = '', doc_name = 'Test'):
                         </div>
                         
                         ''' + edit_editor(curs, ip, thread_data, 'thread') + '''
-                        <hr class="main_hr">
-                        
-                        ''' + captcha_get() + ip_warning() + '''
-                        
-                        <button id="opennamu_save_button" formaction="/thread/''' + topic_num + '''" type="submit" onclick="do_monaco_to_textarea(); do_stop_exit_release();">''' + load_lang('send') + '''</button>
-                        <button id="opennamu_preview_button" formaction="/thread_preview/''' + topic_num + '''#opennamu_edit_textarea" type="submit" onclick="do_monaco_to_textarea(); do_stop_exit_release();">''' + load_lang('preview') + '''</button>
                     </form>
-                    <hr class="main_hr">
-                    
-                    <div id="opennamu_preview_area">''' + thread_data_preview + '''</div>
                 ''',
                 menu = [['topic/' + url_pas(name), load_lang('list')]]
             ))

+ 1 - 1
version.json

@@ -1,6 +1,6 @@
 {
     "beta" : {
-        "r_ver" : "v3.4.6-RC5-dev10",
+        "r_ver" : "v3.4.6-RC5-dev11",
         "c_ver" : "3500372",
         "s_ver" : "3500111"
     }

+ 20 - 0
views/main_css/js/route/editor_sub.js

@@ -0,0 +1,20 @@
+function opennamu_do_editor_preview() {
+    var input = document.querySelector('#opennamu_edit_textarea');
+    if (input !== null) {
+        fetch("/api/w/test/doc_tool/preview", {
+            method: 'POST',
+            headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
+            body: new URLSearchParams({
+                'data': input.value,
+            })
+        }).then(function (res) {
+            return res.json();
+        }).then(function (text) {
+            var preview = document.querySelector('#opennamu_preview_area');
+            if (preview !== null) {
+                preview.innerHTML = text.data;
+                eval(text.js_data);
+            }
+        });
+    }
+}

+ 20 - 0
views/main_css/js/route/editor_sub.ts

@@ -0,0 +1,20 @@
+function opennamu_do_editor_preview() {
+    const input = document.querySelector('#opennamu_edit_textarea') as HTMLInputElement | null;
+    if(input !== null) {
+        fetch("/api/w/test/doc_tool/preview", {
+            method : 'POST',
+            headers : { 'Content-Type': 'application/x-www-form-urlencoded' },
+            body : new URLSearchParams({
+                'data': input.value,
+            })
+        }).then(function(res) {
+            return res.json();
+        }).then(function(text) {
+            const preview = document.querySelector('#opennamu_preview_area') as HTMLInputElement | null;
+            if(preview !== null) {
+                preview.innerHTML = text.data;
+                eval(text.js_data);
+            }
+        });
+    }
+}