1/*** 2 * ë¼ì´ë¸ë¬ë¦¬ ì´ë¯¸ì§ ê´ë ¨ 3 *initì ì¡´ì¬íë ê°ì²´ë¤ì ì¬ì©íë íì´ì§ììë ì¡´ì¬í´ì¼í¨ 4 */ 5var LIBRARY_IMAGE = function(){ 6 var cover_image_index = 0; 7 var type = ""; 8 var $editor_obj, $cover_image, $represent_img, represent_img_val, $library_img_list; 9 var editor_id; 10 var init = function(_type,_editor_obj,_library_img_obj, _represent_img = ''){ 11 type = _type; 12 $editor_obj = _editor_obj; 13 editor_id = $editor_obj.attr("id"); 14 15 var $library_img_obj = _library_img_obj; 16 var library_img_html = ""; 17 18 library_img_html += '<div class="post_write_left _post_write_left">'; 19 20 library_img_html += '<div class="margin-bottom-xxl img_tools_title"><div class="holder">'+getLocalizeString('íì´í_ëíì´ë¯¸ì§ì¤ì ','','ëí ì´ë¯¸ì§ ì¤ì ')+' <a href="javascript:;" class="btn-dismiss hidden-md hidden-lg hidden-sm" id="library_img_close_btn"><i class="btl bt-times" aria-hidden="true"></i><span class="sr-only">'+getLocalizeString('ì¤ëª _ëíì´ë¯¸ì§ìì ','','ëí ì´ë¯¸ì§ ìì ')+'</span></a></div></div>'; 21 if(!TEST_SERVER){ 22 library_img_html += '<div class="clearfix library_img_list" id="library_img_list"><div style="text-align:center;padding-top:75px;"><span class="hidden-sm hidden-lg hidden-md opacity-50" style="font-size:16px;">' + getLocalizeString('ì¤ëª _첨ë¶ëì´ë¯¸ì§ê°ììµëë¤', '', '첨ë¶ë ì´ë¯¸ì§ê° ììµëë¤.') + '</span></div></div>'; 23 }else{ 24 library_img_html += '<div class="clearfix library_img_list" id="library_img_list"><div style="text-align:center;padding-top:75px;"><span class="blocked hidden-sm hidden-lg hidden-md opacity-50" style="font-size:16px;">' + getLocalizeString('ì¤ëª _첨ë¶ëì´ë¯¸ì§ê°ììµëë¤', '', '첨ë¶ë ì´ë¯¸ì§ê° ììµëë¤.') + '</span>
24<p class="hidden-sm hidden-lg hidden-md margin-top-xl inline-blocked holder"><span class="text-brand">' + getLocalizeString("ì¤ëª _ì´ë¯¸ì§ì¶ê°", '', "ì´ë¯¸ì§ ì¶ê°") + '</span><input type=\'file\' name=\'files[]\' class=\'img-file-control\' accept=\'image/jpeg, image/jpg, image/png, image/gif, image/svg+xml\' title="' + getLocalizeString("ì¤ëª _ì´ë¯¸ì§ì¶ê°", '', "ì´ë¯¸ì§ ì¶ê°") + '"></p></div></div>'; 25 } 26 27 library_img_html += '</div>'; 28 $library_img_obj.html(library_img_html); 29 30 $library_img_list = $("#library_img_list"); 31 $represent_img = $("#represent_img"); 32 $cover_image = $('#cover_image'); 33 represent_img_val = _represent_img; 34 35 36 $("#library_img_btn, #library_img_close_btn").off("click.library_img_btn").on("click.library_img_btn",function(){ 37 $library_img_obj.find("._post_write_left").toggleClass("on_library_img"); 38 }); 39 }; 40 41 42 /*** 43 * ë¼ì´ë¸ë¬ë¦¬ ì´ë¯¸ì§ ì¶ê° 루íë리기 44 * @param delay 45 */ 46 var addLibraryImageLoop = function(delay){ 47 LIBRARY_IMAGE.addLibraryImage(); 48 setInterval(LIBRARY_IMAGE.addLibraryImage,delay); 49 }; 50 51 /*** 52 * ë¼ì´ë¬ë¦¬ ì´ë¯¸ì§ ì¶ê° 53 * @type {Array} 54 */ 55 var tmp_img_list = []; 56 var tmp_imgs = {}; 57 var addLibraryImage = function(){ 58 var $body; 59 if(IE_VERSION < 10){ 60 $body = $(CKEDITOR.instances[editor_id].getData()); 61 }else{ 62 //body = $editor_body.froalaEditor('html.get',true); //froala Editor ìì²´ í¨ì html.get ì¬ì©ì ë²ë² ì, ê³µì ì¬ì´í¸ìì í ì¤í¸ììë ëì¼í ê²ì¼ë¡ ë³´ì froala ìëí° ìì²´ ê°ì ì´ íì 63 $body = $editor_obj; 64 } 65 var img_list = []; 66 67 68 var cover_image = $cover_image.val(); 69 70 71 //커ë²ì´ë¯¸ì§ ì í 72 if(cover_image !== ""){ 73 cover_image_index = 0; 74 img_list.push(cover_image); 75 } 76 else cover_image_index = -1; 77 78 //본문 ì´ë¯¸ì§ ì í 79 $body.find("img, iframe, embed").each(function(){ 80 var $that = $(this); 81 var src = $that.attr("src"); 82 if(typeof src !== 'undefined'){ 83 if($that.prop("tagName") === "IMG"){ 84 src = src.replace(CDN_UPLOAD_URL,UPLOAD_URL); 85 src = src.replace(CDN_THUMBNAIL_URL,THUMBNAIL_URL); 86 if($.inArray(src, img_list) == -1 && src.indexOf('base64') == -1) img_list.push(src); 87 }else{ 88 var is_video_type = getVideoId(src); 89 var thumb_data = {}; 90 if(typeof is_video_type != 'undefined'){ 91 $.each(is_video_type,function(k,v){ 92 switch(k){ 93 case 'youtube': 94 if(typeof tmp_imgs[v[1]] == 'undefined'){ 95 thumb_data = getYoutubeThumbnail(v[1]); 96 tmp_imgs[v[1]] = thumb_data; 97 }else{ 98 thumb_data = tmp_imgs[v[1]]; 99 } 100 101 if(thumb_data != "" && typeof thumb_data != 'undefined') img_list.push(thumb_data); 102 break; 103 case 'vimeo': 104 // var vidStr = src.indexOf("video/"); 105 // var vid = src.slice(vidStr+6); 106 var check_param = src.indexOf("?"); // ì¤ì ê° ìì´ ëìì ìì²´ urlë§ ìì´ì¼ ì¸ë¤ì¼ ì¶ì¶ ê°ë¥ 107 if(check_param != -1){ 108 src = src.substring(0, check_param); 109 } 110 src = "https:"+src; 111 img_list.push(src); 112 113 thumb_data = getVimeoThumbnail(src, function(src, thumb_url){ 114 //var thumb_index = img_list.indexOf(vimeo_id); 115 // if(thumb_index > -1){ 116 // img_list[thumb_index] = thumb_url; 117 // } 118 changeImageById(src, thumb_url); 119 }); 120 break; 121 } 122 }); 123 } 124 } 125 } 126 127 }); 128 129 updateLibrayImage(img_list); 130 131 }; 132 133 function updateLibrayImage(img_list){ 134 var html = ""; 135 var is_update = false; 136 var img_list_length = img_list.length; 137 var tmp_img_list_length = tmp_img_list.length; 138 //ë¼ì´ë¸ë¬ë¦¬ì 본문ì ì´ë¯¸ì§ê° ë¬ë¼ì§ê²½ì° 139 if(img_list_length !== tmp_img_list_length) is_update = true; 140 $.each(img_list,function(i,v){ 141 //본문 ì´ë¯¸ì§ì ììê° ë³ê²½ëê²½ì° 142 if(v !== tmp_img_list[i]){ 143 is_update = true; 144 return false; 145 146 } 147 }); 148 149 //ë³ëì¬íì´ ììëìë§ ì´ë¯¸ì§ ìë¡ì ì© 150 if(is_update){ 151 var represent_img_src = represent_img_val; 152 var is_represent_img = false;
153 154 //본문ìì ëíì´ë¯¸ì§ê° ìì ëìëì§ ì²´í¬ 155 //(ìëí°ìì ì´ë¯¸ì§ë¥¼ ë°ê¸° ì ì ì 목 ì´ë¯¸ì§ë§ ë¶ë¬ìì§ ê²½ì° ì 목 ì´ë¯¸ì§ê° ëí ì´ë¯¸ì§ë¡ ì¤ì ë ì ìì´ ì²´í¬ ì ì¸) 156 if(img_list_length > 1 || cover_image_index == -1){ 157 $.each(img_list,function(index,_img_src){ 158 if(represent_img_src === _img_src){ 159 is_represent_img = true; 160 $represent_img.val(represent_img_src); 161 }; 162 }); 163 if(!is_represent_img){ 164 $represent_img.val(""); 165 represent_img_src = ""; 166 } 167 } 168 169 $.each(img_list,function(index,_img_src){ 170 var img_src = ""; 171 img_src = _img_src; 172 if(img_src.indexOf("http") !== -1 || img_src.indexOf("https") !== -1){//ì¸ë¶ ì´ë¯¸ì§ì²ë¦¬ 173 174 }else{ 175 if(img_src.substring(0,8) == "/upload/"){ 176 img_src = img_src.replace("/upload/",""); 177 img_src = CDN_UPLOAD_URL+img_src; 178 }else if(img_src.substring(0,11) == "/thumbnail/"){ 179 img_src = img_src.replace("/thumbnail/",""); 180 img_src = CDN_THUMBNAIL_URL+img_src; 181 }else if(img_src.indexOf(CDN_UPLOAD_URL) === -1){ // ê²½ë¡ì ììì´ site_codeì¼ëê° ìì´ì ìì¸ì²ë¦¬ 182 img_src = CDN_UPLOAD_URL+img_src; 183 } 184 } 185 186 //ëíì´ë¯¸ì§ê° ì¤ì ëì´ ìì§ììë 첫ë²ì§¸ ì´ë¯¸ì§ë¥¼ ëí ì´ë¯¸ì§ë¡ ì²ë¦¬ 187 if(represent_img_src === "" && index === 0 && img_list_length !== 0){ 188 represent_img_src = _img_src; 189 $represent_img.val(represent_img_src); 190 } 191 192 var add_class = _img_src === represent_img_src ? "on" : ""; 193 var is_represent_img = add_class === "on"; 194 195 if(_img_src.indexOf(".") == -1) img_src = NO_IMAGE_URL; 196 var encoded_img_src = img_src.replace(/ /g, '%20'); 197 html += "<div class='123123 float_l img_tools _library_img "+add_class+"' style='background-image: url("+encoded_img_src+")' data-id='"+_img_src+"'>"; 198 html += '<a href="javascript:;" data-url="'+_img_src+'" onclick="LIBRARY_IMAGE.deleteLibraryImage('+index+','+is_represent_img+')"><i aria-hidden="true" class="btm bt-times"></i></a><div class="primary">' + getLocalizeString('ì¤ëª _ëí', '', 'ëí') + '</div>'; 199 html += "</div>"; 200 201 if(TEST_SERVER){ 202 html += "<div class='float_l img_tools _library_img add_img'>"; 203 html += "<i aria-hidden='true' class='btm bt-plus'></i>"; 204 html += "<input type='file' name='files[]' class='img-file-control' accept='image/jpeg, image/jpg, image/png, image/gif, image/svg+xml'>"; 205 html += "</div>"; 206 } 207 208 }); 209 210 if(!html) html = '<div style="text-align:center;padding-top:75px;"><span class="hidden-sm hidden-lg hidden-md opacity-50" style="font-size:16px;">' + getLocalizeString('ì¤ëª _첨ë¶ëì´ë¯¸ì§ê°ììµëë¤', '', '첨ë¶ë ì´ë¯¸ì§ê° ììµëë¤.') + '</span></div>'; 211 $library_img_list.html(html); 212 tmp_img_list = img_list; 213 214 $library_img_list.find("._library_img").off("click.library_img").on("click.library_img",function(){ 215 $library_img_list.find("._library_img").removeClass("on"); 216 $(this).addClass("on"); 217 var img_name = $(this).find("a").data("url"); 218 $represent_img.val(img_name); 219 }); 220 } else { 221 // ì ë°ì´í¸ê° ìê³ ì´ë¯¸ì§ê° ìê³ ëí ì´ë¯¸ì§ê° ìì ê²½ì° ëí ì´ë¯¸ì§ë¥¼ ì§ì´ë¤. 222 if(img_list_length === 0 && represent_img_src !== ""){ 223 $represent_img.val(""); 224 represent_img_src = ""; 225 } 226 } 227 } 228 229 230 /*** 231 * ë¼ì´ë¸ë¬ë¦¬ ì´ë¯¸ì§ ìì ì²ë¦¬ 232 * @param delete_index 233 * @param is_represent ëíì´ë¯¸ì§ ì¬ë¶ 234 */ 235 var deleteLibraryImage = function(delete_index,is_represent){ 236 is_update = true; 237 var body = ''; 238 if(delete_index === cover_image_index){//커ë²ì´ë¯¸ì§ ìì ì 239 deleteCoverImage(); 240 }else{//본문 ì´ë¯¸ì§ ìì ì 241 if(IE_VERSION < 10){ 242 body = CKEDITOR.instances[editor_id].getData(); 243 }else{ 244 body = FroalaEditor('#' + editor_id).html.get(true); 245 } 246 247 var delete_tag = ""; 248 var current_index = cover_image_index === -1 ? 0 : 1; 249 $(body).find("img, iframe, embed").each(function(index, tag){ 250 //ëììì´ ì íë¸ê° ìëê²½ì° ì ì¸ 251 if($(this).prop("tagName") !== "IMG"){ 252 if($(this).attr("src").indexOf("youtube") === -1 && $(this).attr("src").indexOf("vimeo") === -1) return true; 253 } 254 if(delete_index === current_index) { 255 delete_tag = tag.outerHTML; 256 delete_tag = $.trim(delete_tag); 257 return false;
258 } 259 current_index++; 260 }); 261 262 body = body.replace(delete_tag,""); 263 if(IE_VERSION < 10){ 264 CKEDITOR.instances[editor_id].setData(body); 265 }else{ 266 FroalaEditor('#' + editor_id).html.set(body, true); 267 } 268 269 } 270 271 if(is_represent){//ëíì´ë¯¸ì§ ìì ì 272 $represent_img.val(""); 273 } 274 addLibraryImage(); 275 }; 276 277 function changeImageById(id, thumb_url){ 278 279 var old_url = $library_img_list.find("div[data-id='" + id + "']").css("background-image"); 280 if(typeof old_url != 'undefined' && old_url.indexOf(thumb_url) == -1){ 281 $library_img_list.find("div[data-id='" + id + "']").css({ 282 "background-image" : "url(" + thumb_url + ")" 283 }); 284 $library_img_list.find("div[data-id='" + id + "']").find("a").data("url",thumb_url); 285 if($library_img_list.find("div[data-id='" + id + "']").hasClass("on")) $represent_img.val(thumb_url); 286 } 287 } 288 289 function deleteCoverImage(){ 290 switch(type){ 291 case 'post': 292 POST.deleteCoverImage(); 293 break; 294 case 'map': 295 MAP.deleteCoverImage(); 296 break; 297 } 298 } 299 300 301 return { 302 'init' : function(_type, _editor_obj, _library_img_obj, _represent_img) { 303 init(_type, _editor_obj, _library_img_obj, _represent_img); 304 }, 305 'addLibraryImageLoop' : function(delay){ 306 addLibraryImageLoop(delay); 307 }, 308 'addLibraryImage' : function(){ 309 addLibraryImage(); 310 }, 311 'deleteLibraryImage' : function(delete_index,is_represent){ 312 deleteLibraryImage(delete_index,is_represent); 313 } 314 }; 315}();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.