Răsfoiți Sursa

이미지 복붙 코드 수정

Surplus_Up (2DU) 6 ani în urmă
părinte
comite
abb6770dae

+ 1 - 1
route/tool/func.py

@@ -499,7 +499,7 @@ def other2(data):
         data += ['']
 
     req_list = ''
-    main_css_ver = 26
+    main_css_ver = 27
 
     if not 'main_css_load' in flask.session or not 'main_css_ver' in flask.session or flask.session['main_css_ver'] != main_css_ver:
         for i_data in os.listdir(os.path.join("views", "main_css", "css")):

+ 1 - 1
route/tool/init.py

@@ -22,7 +22,7 @@ server_set_var = {
     'language' : {
         'display' : 'Language',
         'require' : 'select',
-        'default' : 'en-US',
+        'default' : 'ko-KR',
         'list' : ['ko-KR', 'en-US']
     },
     'markup' : {

+ 1 - 1
version.json

@@ -1,6 +1,6 @@
 {
     "master" : {
-        "r_ver" : "v3.1.8-master-08",
+        "r_ver" : "v3.1.8-master-09",
         "c_ver" : "3180200",
         "s_ver" : "8"
     }, "stable" : {

+ 57 - 0
views/main_css/js/do_upload_paste.js

@@ -0,0 +1,57 @@
+window.addEventListener('DOMContentLoaded', function() {
+    if(window.location.pathname.match(/^\/edit\//i)) {
+        const textarea = document.querySelector("textarea");
+        if (textarea) {
+            textarea.addEventListener("paste", pasteListener);
+        }
+    }
+});
+
+function pasteListener(e) {
+    // find file
+    if (e.clipboardData && e.clipboardData.items) {
+        const items = e.clipboardData.items;
+        let haveImageInClipboard = false;
+        const formData = new FormData();
+        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("취소되었습니다.");
+                }
+                
+                const customFile = new File([file], customName + ".png", { type: file.type });
+                formData.append("f_data[]", customFile);
+                haveImageInClipboard = true;
+                e.preventDefault();
+                
+                break;
+            }
+        }
+        if (!haveImageInClipboard) {
+            return;
+        }
+
+        // send to server
+        fetch("/upload", {
+            method: "POST",
+            body: formData,
+        }).then((res) => {
+            if (res.status === 200 || res.status === 201) {
+                const url = res.url;
+                alert(
+                    '클립보드의 이미지를 성공적으로 업로드했습니다. 아래 텍스트로 본문에 삽입할 수 있습니다.' +
+                    '[[' + decodeURIComponent(url.replace(/.*\/w\/file/, "file")) + ']]'
+                );
+            } else {
+                console.error("[ERROR] PasteUpload Fail :", res.statusText);
+                alert("클립보드의 이미지를 업로드하는데 실패했습니다. 파일 이름 중복일 수 있습니다.");
+            }
+        }).catch((err) => {
+            console.error("[ERROR] PasteUpload Fail :", JSON.stringify(err), err);
+            alert("클립보드의 이미지를 업로드하는데 실패했습니다. 파일 이름 중복일 수 있습니다.");
+        });
+    }
+}

+ 23 - 29
views/main_css/js/load_skin_set.js

@@ -1,6 +1,4 @@
-function main_css_get_post() {
-    var cookies = document.cookie;
-    
+function main_css_get_post() {    
     var check = document.getElementById('strike');
     if(check.value === 'normal') {
         document.cookie = 'main_css_del_strike=0;';
@@ -36,36 +34,34 @@ function main_css_get_post() {
     history.go(0);
 }
 
-function main_css_skin_load() {
-    var cookies = document.cookie;
-    
+function main_css_skin_load() {    
     var head_data = document.querySelector('head');
-    if(cookies.match(main_css_regex_data('main_css_del_strike'))) {
-        if(cookies.match(main_css_regex_data('main_css_del_strike'))[1] === '1') {
+    if(document.cookie.match(main_css_regex_data('main_css_del_strike'))) {
+        if(document.cookie.match(main_css_regex_data('main_css_del_strike'))[1] === '1') {
             head_data.innerHTML += '<style>s { text-decoration: none; } s:hover { background-color: transparent; }</style>';
-        } else if(cookies.match(main_css_regex_data('main_css_del_strike'))[1] === '2') {
+        } else if(document.cookie.match(main_css_regex_data('main_css_del_strike'))[1] === '2') {
             head_data.innerHTML += '<style>s { display: none; }</style>';
         }
     }
 
-    if(cookies.match(main_css_regex_data('main_css_del_bold'))) {
-        if(cookies.match(main_css_regex_data('main_css_del_bold'))[1] === '1') {
+    if(document.cookie.match(main_css_regex_data('main_css_del_bold'))) {
+        if(document.cookie.match(main_css_regex_data('main_css_del_bold'))[1] === '1') {
             head_data.innerHTML += '<style>b { font-weight: normal; }</style>';
-        } else if(cookies.match(main_css_regex_data('main_css_del_bold'))[1] === '2') {
+        } else if(document.cookie.match(main_css_regex_data('main_css_del_bold'))[1] === '2') {
             head_data.innerHTML += '<style>b { display: none; }</style>';
         }
     }
 
     if(
-        cookies.match(main_css_regex_data('main_css_include_link')) &&
-        cookies.match(main_css_regex_data('main_css_include_link'))[1] === '1'
+        document.cookie.match(main_css_regex_data('main_css_include_link')) &&
+        document.cookie.match(main_css_regex_data('main_css_include_link'))[1] === '1'
     ) {
         head_data.innerHTML += '<style>#include_link { display: inline; }</style>';
     }
 
     if(
-        cookies.match(main_css_regex_data('main_css_category_set')) &&
-        cookies.match(main_css_regex_data('main_css_category_set'))[1] === '1'
+        document.cookie.match(main_css_regex_data('main_css_category_set')) &&
+        document.cookie.match(main_css_regex_data('main_css_category_set'))[1] === '1'
     ) {
         var get_category = document.getElementById('cate_all');
         if(get_category) {
@@ -84,9 +80,7 @@ function main_css_regex_data(data) {
     return new RegExp('(?:^|; )' + data + '=([^;]*)');
 }
 
-function main_css_skin_set() {
-    var cookies = document.cookie;
-    
+function main_css_skin_set() {    
     if(window.location.pathname === '/main_skin_set') {
         var set_language = {
             "en-US" : {
@@ -116,8 +110,8 @@ function main_css_skin_set() {
             }
         }
 
-        var language = cookies.match(main_css_regex_data('language'))[1];
-        var user_language = cookies.match(main_css_regex_data('user_language'))[1];
+        var language = document.cookie.match(main_css_regex_data('language'))[1];
+        var user_language = document.cookie.match(main_css_regex_data('user_language'))[1];
         if(user_language in set_language) {
             language = user_language;
         }
@@ -139,8 +133,8 @@ function main_css_skin_set() {
         while(1) {
             if(strike_list[i]) {
                 if(
-                    cookies.match(main_css_regex_data('main_css_del_strike')) && 
-                    cookies.match(main_css_regex_data('main_css_del_strike'))[1] === strike_list[i][0]
+                    document.cookie.match(main_css_regex_data('main_css_del_strike')) && 
+                    document.cookie.match(main_css_regex_data('main_css_del_strike'))[1] === strike_list[i][0]
                 ) {
                     set_data["strike"] = '<option value="' + strike_list[i][1] + '">' + strike_list[i][2] + '</option>' + set_data["strike"];
                 } else {
@@ -163,8 +157,8 @@ function main_css_skin_set() {
         while(1) {
             if(bold_list[i]) {
                 if(
-                    cookies.match(main_css_regex_data('main_css_del_bold')) && 
-                    cookies.match(main_css_regex_data('main_css_del_bold'))[1] === bold_list[i][0]
+                    document.cookie.match(main_css_regex_data('main_css_del_bold')) && 
+                    document.cookie.match(main_css_regex_data('main_css_del_bold'))[1] === bold_list[i][0]
                 ) {
                     set_data["bold"] = '<option value="' + bold_list[i][1] + '">' + bold_list[i][2] + '</option>' + set_data["bold"];
                 } else {
@@ -178,8 +172,8 @@ function main_css_skin_set() {
         }
 
         if(
-            cookies.match(main_css_regex_data('main_css_include_link')) &&
-            cookies.match(main_css_regex_data('main_css_include_link'))[1] === '1'
+            document.cookie.match(main_css_regex_data('main_css_include_link')) &&
+            document.cookie.match(main_css_regex_data('main_css_include_link'))[1] === '1'
         ) {
             set_data["include"] = "checked";
         }
@@ -193,8 +187,8 @@ function main_css_skin_set() {
         while(1) {
             if(category_list[i]) {
                 if(
-                    cookies.match(main_css_regex_data('main_css_category_set')) && 
-                    cookies.match(main_css_regex_data('main_css_category_set'))[1] === category_list[i][0]
+                    document.cookie.match(main_css_regex_data('main_css_category_set')) && 
+                    document.cookie.match(main_css_regex_data('main_css_category_set'))[1] === category_list[i][0]
                 ) {
                     set_data["category"] = '<option value="' + category_list[i][1] + '">' + category_list[i][2] + '</option>' + set_data["category"];
                 } else {

+ 0 - 57
views/main_css/js/upload_image_with_paste.js

@@ -1,57 +0,0 @@
-let pasteUploadSwitch = false;
-function togglePasteUploaderSwtich() {
-  pasteUploadSwitch = !pasteUploadSwitch;
-  if (pasteUploadSwitch) {
-    const textarea = document.querySelector("textarea");
-    if (textarea) textarea.addEventListener("paste", pasteListener);
-    alert("이미지 복사-붙여넣기 방식 업로드가 활성화되었습니다.");
-  } else {
-    const textarea = document.querySelector("textarea");
-    if (textarea) textarea.removeEventListener("paste", pasteListener);
-    alert("이미지 복사-붙여넣기 방식 업로드가 비활성화되었습니다.");
-  }
-}
-
-function pasteListener(e) {
-  // find file
-  if (e.clipboardData && e.clipboardData.items) {
-    const items = e.clipboardData.items;
-    let haveImageInClipboard = false;
-    const formData = new FormData();
-    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("취소되었습니다.")
-        const customFile = new File([file], customName + ".png", { type: file.type });
-        formData.append("f_data[]", customFile);
-        haveImageInClipboard = true;
-        e.preventDefault();
-        break;
-      }
-    }
-    if (!haveImageInClipboard) return;
-
-    // send to server
-    fetch("/upload", {
-      method: "POST",
-      body: formData,
-    })
-      .then((res) => {
-        if (res.status === 200 || res.status === 201) {
-          const url = res.url;
-          alert(
-            `클립보드의 이미지를 성공적으로 업로드했습니다. 아래 텍스트로 본문에 삽입할 수 있습니다.
-[[${decodeURIComponent(url.replace(/.*\/w\/file/, "file"))}]]`
-          );
-        } else {
-          console.error("[ERROR] PasteUpload Fail :", res.statusText);
-          alert("클립보드의 이미지를 업로드하는데 실패했습니다. 파일 이름 중복일 수 있습니다.");
-        }
-      })
-      .catch((err) => {
-        console.error("[ERROR] PasteUpload Fail :", JSON.stringify(err), err);
-        alert("클립보드의 이미지를 업로드하는데 실패했습니다. 파일 이름 중복일 수 있습니다.");
-      });
-  }
-}