ソースを参照

복사 붙여넣기로 이미지 삽입 상시 활성화로 변경

잉여개발기 (SPDV) 2 年 前
コミット
ee8d356979

+ 0 - 7
route/main_setting_skin_set.py

@@ -148,13 +148,6 @@ def main_setting_skin_set():
                             ''' + set_data["main_css_font_size"] + '''
                         </select>
                         <h2>''' + get_lang(conn, "edit") + '''</h2>
-                        <h3>''' + get_lang(conn, "image_paste") + '''</h3>
-                        <sup>''' + get_lang(conn, 'only_korean') + '''</sup> <sup>''' + get_lang(conn, 'unavailable_in_monaco') + '''</sup>
-                        <hr class="main_hr">
-                        ''' + set_data_main["main_css_image_paste"] + '''
-                        <select name="main_css_image_paste">
-                            ''' + set_data["main_css_image_paste"] + '''
-                        </select>
                         <h3>''' + get_lang(conn, "monaco_editor") + '''</h3>
                         ''' + set_data_main["main_css_monaco"] + '''
                         <select name="main_css_monaco">

+ 2 - 2
route/tool/func.py

@@ -1072,7 +1072,7 @@ def skin_check(conn, set_n = 0):
         return skin
     
 def cache_v():
-    return '.cache_v250'
+    return '.cache_v252'
 
 def wiki_css(data):
     global global_wiki_set
@@ -1094,7 +1094,7 @@ def wiki_css(data):
         data_css += '<script defer src="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.9/katex.min.js" integrity="sha512-LQNxIMR5rXv7o+b1l8+N1EZMfhG7iFZ9HhnbJkTp4zjNr5Wvst75AqUeFDxeRUa7l5vEDyUiAip//r+EFLLCyA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>'
         data_css += '<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/highlight.min.js" integrity="sha512-rdhY3cbXURo13l/WU9VlaRyaIYeJ/KBakckXIvJNAQde8DgpOmE+eZf7ha4vdqVjTtwQt69bD2wH2LXob/LB7Q==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>'
         data_css += '<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/x86asm.min.js" integrity="sha512-HeAchnWb+wLjUb2njWKqEXNTDlcd1QcyOVxb+Mc9X0bWY0U5yNHiY5hTRUt/0twG8NEZn60P3jttqBvla/i2gA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>'
-        data_css += '<script defer src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.41.0/min/vs/loader.min.js" integrity="sha512-A+6SvPGkIN9Rf0mUXmW4xh7rDvALXf/f0VtOUiHlDUSPknu2kcfz1KzLpOJyL2pO+nZS13hhIjLqVgiQExLJrw==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>'
+        data_css += '<script defer src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.48.0/min/vs/loader.min.js" integrity="sha512-ZG31AN9z/CQD1YDDAK4RUAvogwbJHv6bHrumrnMLzdCrVu4HeAqrUX7Jsal/cbUwXGfaMUNmQU04tQ8XXl5Znw==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>'
 
         # Func JS
         data_css += '<script defer src="/views/main_css/js/func/func.js' + data_css_ver + '"></script>'

+ 1 - 12
route/user_setting_skin_set_main.py

@@ -16,10 +16,6 @@ def user_setting_skin_set_main_set_list(conn):
             ['default', get_lang(conn, 'default')],
             ['normal', get_lang(conn, 'off')],
             ['use', get_lang(conn, 'use')]
-        ], 'main_css_image_paste' : [
-            ['default', get_lang(conn, 'default')],
-            ['normal', get_lang(conn, 'off')],
-            ['use', get_lang(conn, 'use')]
         ], 'main_css_category_set' : [
             ['default', get_lang(conn, 'default')],
             ['bottom', get_lang(conn, 'bottom')],
@@ -115,7 +111,7 @@ def user_setting_skin_set_main():
             return re_error(conn, '/ban')
             
         set_list = user_setting_skin_set_main_set_list(conn)
-        use_cookie = ['main_css_image_paste', 'main_css_darkmode']
+        use_cookie = ['main_css_darkmode']
 
         if flask.request.method == 'POST':
             html_data = flask.make_response(redirect(conn, '/change/skin_set/main'))
@@ -276,13 +272,6 @@ def user_setting_skin_set_main():
                             ''' + set_data["main_css_font_size"] + '''
                         </select>
                         <h2>''' + get_lang(conn, "edit") + '''</h2>
-                        <h3>''' + get_lang(conn, "image_paste") + '''</h3>
-                        <sup>''' + get_lang(conn, 'only_korean') + '''</sup> <sup>''' + get_lang(conn, 'unavailable_in_monaco') + '''</sup>
-                        <hr class="main_hr">
-                        ''' + set_data_main["main_css_image_paste"] + '''
-                        <select name="main_css_image_paste">
-                            ''' + set_data["main_css_image_paste"] + '''
-                        </select>
                         <h3>''' + get_lang(conn, "monaco_editor") + '''</h3>
                         ''' + set_data_main["main_css_monaco"] + '''
                         <select name="main_css_monaco">

+ 1 - 1
version.json

@@ -1,6 +1,6 @@
 {
     "beta" : {
-        "r_ver" : "v3.5.0-v112",
+        "r_ver" : "v3.5.0-v113",
         "c_ver" : "20240513",
         "s_ver" : "20240426"
     }

+ 47 - 45
views/main_css/js/func/editor.js

@@ -39,38 +39,24 @@ function do_insert_data(data) {
 
 // 아직 개편이 더 필요함
 function do_paste_image() {
-    const name = 'opennamu_edit_textarea';
-
-    window.addEventListener('DOMContentLoaded', async function() {
-        let set = await opennamu_get_main_skin_set("main_css_image_paste");
-        if(set === 'use') {
-            document.getElementById(name).addEventListener("paste", pasteListener);
-        }
-    });
+    document.getElementById('opennamu_edit_textarea').addEventListener("paste", pasteListener);
 }
 
 function pasteListener(e) {
-    // find file
+    let lang_data = new FormData();
+    lang_data.append('data', 'file_name empty save authority_error same_file_error error');
+
     if(e.clipboardData && e.clipboardData.items) {
         const items = e.clipboardData.items;
         const formData = new FormData();
 
         let haveImageInClipboard = false;
         let file_name = '';
+        let file;
         
         for(let i = 0; i < items.length; i++) {
             if(items[i].type.indexOf("image") !== -1) {
-                const file = items[i].getAsFile();
-                const customName = prompt("파일 이름 (확장자 제외)");
-                
-                if(!customName) {
-                    return alert("파일 이름 없음");
-                }
-                
-                file_name = customName + ".png";
-                
-                const customFile = new File([file], file_name, { type: file.type });
-                formData.append("f_data[]", customFile);
+                file = items[i].getAsFile();
                 
                 haveImageInClipboard = true;
                 e.preventDefault();
@@ -83,32 +69,48 @@ function pasteListener(e) {
             return;
         }
 
-        // send to server
-        fetch("/upload", {
-            method: "POST",
-            body: formData,
-        }).then((res) => {
-            if (res.status === 200 || res.status === 201) {
-                const url = res.url;
-                alert(
-                    '업로드 완료 : ' +
-                    '[[파일:' + file_name + ']]'
-                );
-
-                do_insert_data('[[file:' + file_name + ']]');
-            } else {
-                console.error("[ERROR] PasteUpload Fail :", res.statusText);
-                if(res.status === 400) {
-                    alert("파일 이름 중복");
-                } else if(res.status === 401) {
-                    alert("권한 부족");    
+        fetch('/api/lang', {
+            method : 'post',
+            body : lang_data,
+        }).then(function(res) {
+            return res.json();
+        }).then(function(ajax_data) {
+            const customName = prompt(ajax_data['data'][0]);
+                
+            if(!customName) {
+                return alert(ajax_data['data'][1]);
+            }
+            
+            file_name = customName + ".png";
+            
+            const customFile = new File([file], file_name, { type: file.type });
+            formData.append("f_data[]", customFile);
+
+            fetch("/upload", {
+                method: "POST",
+                body: formData,
+            }).then((res) => {
+                if (res.status === 200 || res.status === 201) {
+                    const url = res.url;
+                    alert(ajax_data['data'][2] + ' : [[file:' + file_name + ']]');
+
+                    do_insert_data('[[file:' + file_name + ']]');
                 } else {
-                    alert("업로드 실패");        
+                    console.error("[ERROR] PasteUpload Fail :", res.statusText);
+
+                    if(res.status === 400) {
+                        alert(ajax_data['data'][4]);
+                    } else if(res.status === 401) {
+                        alert(ajax_data['data'][3]);    
+                    } else {
+                        alert(ajax_data['data'][5]);        
+                    }
                 }
-            }
-        }).catch((err) => {
-            console.error("오류 내역 :", JSON.stringify(err), err);
-            alert("업로드 실패");
+            }).catch((err) => {
+                console.error("[ERROR] PasteUpload Fail :", JSON.stringify(err), err);
+
+                alert(ajax_data['data'][5]);
+            });
         });
     }
 }
@@ -230,7 +232,7 @@ class PlaceholderContentWidget {
 }
 
 function do_monaco_init(monaco_thema, markup = "") {
-    require.config({ paths: { 'vs' : 'https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.40.0/min/vs' }});
+    require.config({ paths: { 'vs' : 'https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.48.0/min/vs' }});
     require.config({ 'vs/nls' : { availableLanguages: { '*' : 'ko' } }});
     require(["vs/editor/editor.main"], function () {
         monaco.languages.register({ id : "namumark" });

+ 0 - 14
views/main_css/js/func/func.js

@@ -68,20 +68,6 @@ function opennamu_cookie_split_regex(data) {
 function opennamu_get_main_skin_set(set_name) {
     return fetch("/api/setting/" + opennamu_do_url_encode(set_name)).then(function(res) {
         return res.json();
-    }).then(function(text) {
-        if(
-            document.cookie.match(opennamu_cookie_split_regex(set_name)) &&
-            document.cookie.match(opennamu_cookie_split_regex(set_name))[1] !== '' &&
-            document.cookie.match(opennamu_cookie_split_regex(set_name))[1] !== 'default'
-        ) {
-            return document.cookie.match(opennamu_cookie_split_regex(set_name))[1];
-        } else {
-            if(text[set_name]) {
-                return text[set_name][0][0];
-            } else {
-                return '';
-            }
-        }
     });
 }