2du 3 лет назад
Родитель
Сommit
2e8488d135
4 измененных файлов с 60 добавлено и 106 удалено
  1. 4 5
      route/edit.py
  2. 16 5
      route/recent_history_add.py
  3. 0 90
      views/main_css/js/load_editor.js
  4. 40 6
      views/main_css/js/route/edit.js

+ 4 - 5
route/edit.py

@@ -190,15 +190,14 @@ def edit(name = 'Test', section = 0, do_type = ''):
                         
                         ''' + captcha_get() + ip_warning() + get_edit_text_bottom_check_box() + get_edit_text_bottom() + '''
                         
-                        <button id="opennamu_js_save" type="submit" onclick="monaco_to_content(); section_edit_do();">''' + load_lang('save') + '''</button>
-                        <button id="opennamu_js_preview" type="button" onclick="monaco_to_content(); load_preview(\'''' + url_pas(name) + '''\');">''' + load_lang('preview') + '''</button>
+                        <button id="opennamu_js_save" type="submit">''' + load_lang('save') + '''</button>
+                        <button id="opennamu_js_preview" type="button">''' + load_lang('preview') + '''</button>
                     </form>
-                    <hr class="main_hr">
                     
-                    <div id="see_preview"></div>
+                    <hr class="main_hr">
+                    <div id="opennamu_js_preview_area"></div>
                     
                     <script>
-                        section_edit_init();
                         do_paste_image();
                         ''' + add_script + '''
                     </script>

+ 16 - 5
route/recent_history_add.py

@@ -30,23 +30,34 @@ def recent_history_add(name = 'Test'):
 
             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')
+            
             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">
-                        ''' + edit_button() + '''
-                        <textarea rows="25" id="content" name="content"></textarea>
+                        <textarea style="display: none;" id="opennamu_js_edit_origin"></textarea>
+                        <textarea style="display: none;" id="opennamu_js_edit_textarea" name="content"></textarea>
+                        
+                        <div>''' + edit_button() + '''</div>
+                        
+                        <textarea id="opennamu_js_edit_textarea_view" class="content" placeholder="''' + p_text + '''"></textarea>
                         <hr class="main_hr">
+                        
                         <input placeholder="''' + load_lang('why') + '''" name="send" type="text">
                         <hr class="main_hr">
+                        
                         <input placeholder="''' + load_lang('name') + '''" name="get_ip" type="text">
                         <hr class="main_hr">
+                        
                         <button id="opennamu_js_save" type="submit">''' + load_lang('save') + '''</button>
-                        <button id="opennamu_js_preview" type="button" onclick="load_preview(\'''' + url_pas(name) + '\')">' + load_lang('preview') + '''</button>
+                        <button id="opennamu_js_preview" type="button">''' + load_lang('preview') + '''</button>
                     </form>
+                    
                     <hr class="main_hr">
-                    <div id="see_preview"></div>
-                    <script>do_stop_exit();</script>
+                    <div id="opennamu_js_preview_area"></div>
                 ''',
                 menu = [['history/' + url_pas(name), load_lang('return')]]
             ))

+ 0 - 90
views/main_css/js/load_editor.js

@@ -34,7 +34,6 @@ function do_insert_data(name, data, monaco = 0) {
 }
 
 // 아직 개편이 더 필요함
-
 function do_paste_image() {
     window.addEventListener('DOMContentLoaded', function() {
         if(
@@ -106,95 +105,6 @@ function pasteListener(e) {
     }
 }
 
-function load_preview(name) {
-    var s_data = new FormData();
-    s_data.append('data', document.getElementById('textarea_edit_view').value);
-
-    var xhr = new XMLHttpRequest();
-    xhr.open("POST", "/api/w/" + name);
-    xhr.send(s_data);
-    
-    xhr.onreadystatechange = function() {
-        if(xhr.readyState === 4 && xhr.status === 200) {
-            var o_p_data = JSON.parse(xhr.responseText);
-            
-            document.getElementById('see_preview').innerHTML = o_p_data['data'];
-            eval(o_p_data['js_data'])
-        }
-    }
-}
-
 function load_raw_preview(name_1, name_2) {
     document.getElementById(name_2).innerHTML = document.getElementById(name_1).value;
-}
-
-function section_edit_init() {
-    var data_server = JSON.parse(
-        document.getElementById('server_set').innerHTML
-    );
-    
-    if(data_server['markup'] === 'namumark') {
-        var data = document.getElementById('textarea_edit_view').value;
-        var data_org = data;
-        var data_section = Number(data_server['section']);
-        var re_heading = /(^|\n)(={1,6})(#)? ?([^=]+) ?#?={1,6}(\n|$)/;
-        for(i = 1; data.match(re_heading); i++) {
-            if(i === data_section) {
-                var start_point = data.search(re_heading);
-                if(data[start_point] === '\n') {
-                    start_point += 1;
-                }
-                
-                data = data.replace(re_heading, function(x) {
-                    return '.'.repeat(x.length - 1) + '\n';
-                });
-                
-                var end_point = data.search(re_heading);
-                if(end_point === -1) {
-                    end_point = data.length;
-                }
-                
-                data = data_org.slice(start_point, end_point);
-                data = data.replace(/\n$/, '');
-                
-                document.getElementById('textarea_edit_view').value = data;
-                
-                data_server['start_point'] = start_point;
-                data_server['end_point'] = end_point;
-                
-                document.getElementById('server_set').innerHTML = JSON.stringify(data_server);
-                
-                break;
-            } else {
-                data = data.replace(re_heading, function(x) {
-                    return '.'.repeat(x.length - 1) + '\n';
-                });
-            }
-        }
-    }
-}
-
-function section_edit_do() {
-    var data_server = JSON.parse(
-        document.getElementById('server_set').innerHTML
-    );
-    
-    if(data_server['start_point'] !== undefined) {
-        var data = document.getElementById('origin').value;
-        var data_section = document.getElementById('textarea_edit_view').value;
-        
-        var start_point = data_server['start_point'];
-        var end_point = data_server['end_point'];
-        
-        if(data.length >= end_point) {
-            var data_new = '';
-            data_new += data.slice(0, start_point);
-            data_new += data_section;
-            data_new += data.slice(end_point, data.length);
-            
-            document.getElementById('content').value = data_new;
-        }
-    } else {
-        document.getElementById('content').value = document.getElementById('textarea_edit_view').value;
-    }
 }

+ 40 - 6
views/main_css/js/route/edit.js

@@ -1,19 +1,25 @@
-"use strict";
+// "use strict";
 
 function do_stop_exit() {
     window.onbeforeunload = function() {
-        do_monaco_to_textarea();
-        // section_edit_do();
+        do_insert_edit_data();
 
         let data = document.getElementById('opennamu_js_edit_textarea').value;
         let origin = document.getElementById('opennamu_js_edit_origin').value;
-        console.log([data], [origin]);
         if(data !== origin) {
             return '';
         }
     }
 }
 
+function do_insert_edit_data() {
+    do_monaco_to_textarea();
+    
+    let get_data = document.getElementById('opennamu_js_edit_textarea_view').value;
+    
+    document.getElementById('opennamu_js_edit_textarea').value = get_data;
+}
+
 function do_stop_exit_release() {
     window.onbeforeunload = function () {}
 }
@@ -24,8 +30,36 @@ function do_monaco_to_textarea() {
     } catch(e) {}
 }
 
+function do_insert_preview() {
+    let s_data = new FormData();
+    s_data.append('data', document.getElementById('opennamu_js_edit_textarea').value);
+
+    let xhr = new XMLHttpRequest();
+    xhr.open("POST", "/api/w/Test");
+    xhr.send(s_data);
+    
+    xhr.onreadystatechange = function() {
+        if(xhr.readyState === 4 && xhr.status === 200) {
+            let o_p_data = JSON.parse(xhr.responseText);
+            
+            console.log(o_p_data);
+            
+            document.getElementById('opennamu_js_preview_area').innerHTML = o_p_data['data'];
+            eval(o_p_data['js_data'])
+        }
+    }
+}
+
+
 if(document.getElementById('opennamu_js_save')) {
-    console.log('test');
     do_stop_exit();
-    document.getElementById('opennamu_js_save').onclick = do_stop_exit_release;
+    
+    document.getElementById('opennamu_js_save').onclick = function() {
+        do_insert_edit_data();
+        do_stop_exit_release();
+    };
+    document.getElementById('opennamu_js_preview').onclick = function() {
+        do_insert_edit_data();
+        do_insert_preview();
+    };
 }