1(function ($) { 2 'use strict'; 3 4 function cbxwpbookmark_copyStringToClipboard(str) { 5 // Create new element 6 var el = document.createElement('textarea'); 7 // Set value (string to be copied) 8 el.value = str; 9 // Set non-editable to avoid focus and move outside of view 10 el.setAttribute('readonly', ''); 11 el.style = {position: 'absolute', left: '-9999px'}; 12 document.body.appendChild(el); 13 // Select text inside element 14 el.select(); 15 // Copy text to clipboard 16 document.execCommand('copy'); 17 // Remove temporary element 18 document.body.removeChild(el); 19 } 20 21 function cbxwpbookmark_stripslashes(str) { 22 // + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) 23 // + improved by: Ates Goral (http://magnetiq.com) 24 // + fixed by: Mick@el 25 // + improved by: marrtins 26 // + bugfixed by: Onno Marsman 27 // + improved by: rezna 28 // + input by: Rick Waldron 29 // + reimplemented by: Brett Zamir (http://brett-zamir.me) 30 // + input by: Brant Messenger (http://www.brantmessenger.com/) 31 // + bugfixed by: Brett Zamir (http://brett-zamir.me) 32 // * example 1: stripslashes('Kevin\'s code'); 33 // * returns 1: "Kevin's code" 34 // * example 2: stripslashes('Kevin\\\'s code'); 35 // * returns 2: "Kevin\'s code" 36 return (str + '').replace(/\\(.?)/g, function (s, n1) { 37 switch (n1) { 38 case '\\': 39 return '\\'; 40 case '0': 41 return '\u0000'; 42 case '': 43 return ''; 44 default: 45 return n1; 46 } 47 }); 48 } 49 50 $(document).ready(function () { 51 52 var ajaxurl = cbxwpbookmark.ajaxurl; 53 var awn_options = { 54 labels: { 55 tip: cbxwpbookmark.awn_options.tip, 56 info: cbxwpbookmark.awn_options.info, 57 success: cbxwpbookmark.awn_options.success, 58 warning: cbxwpbookmark.awn_options.warning, 59 alert: cbxwpbookmark.awn_options.alert, 60 async: cbxwpbookmark.awn_options.async, 61 confirm: cbxwpbookmark.awn_options.confirm, 62 confirmOk: cbxwpbookmark.awn_options.confirmOk, 63 confirmCancel: cbxwpbookmark.awn_options.confirmCancel 64 } 65 }; 66 67 //on click on +add it will open the boomark panel 68 $(document.body).on('click', '.cbxwpbkmarktrig', function (event) { 69 event.stopPropagation(); 70 event.preventDefault(); 71 72 //var $this = $(this); 73 var $bookmark_btn = $(this); 74 //var $bookmark_panel = $bookmark_btn.next('.cbxwpbkmarklistwrap'); 75 76 //console.log(cbxComputePosition); 77 78 79 //console.log(computePosition); 80 81 //window.FloatingUIDOM.computePosition($bookmark_btn[0], $bookmark_panel[0]).then(({x, y}) => { 82 /*cbxComputePosition($bookmark_btn[0], $bookmark_panel[0]).then(({x, y}) => { 83 console.log(x); 84 console.log(y); 85 86 Object.assign($bookmark_panel[0].style, { 87 left: x+'px', 88 top: y+'px' 89 }); 90 });*/ 91 92 //var test = reposition($bookmark_btn[0], $bookmark_panel[0]); 93 94 var $logged_in = Number($bookmark_btn.data('loggedin')); //user logged in or not 95 96 //if guest return with warning 97 if ($logged_in === 0) { 98 99 CBXWPBookmarkEvents_do_action('cbxwpbookmark_trigger_gust', $bookmark_btn, $bookmark_panel); 100 101 var $bookmark_guest_panel = $bookmark_btn.next('.cbxwpbkmarkguestwrap'); 102 /*cbxReposition($bookmark_btn[0], $bookmark_guest_panel[0],{ 103 position: 'bottom-middle' 104 //container: $bookmark_panel[0].getBoundingClientRect() 105 });*/ 106 107 /* window.computePosition($bookmark_btn[0], $bookmark_guest_panel[0], { 108 placement: 'bottom', 109 strategy: 'fixed', //fixed | absolute 110 middleware: [window.autoPlacement()], 111 }).then(({x, y}) => { 112 Object.assign($bookmark_guest_panel[0].style, { 113 left: x+'px', 114 top: y+'px' 115 }); 116 });*/ 117 118 $($bookmark_guest_panel).toggle('fast', function () { 119 120 }); 121 122 //$bookmark_guest_panel.show();
123 //$bookmark_guest_panel.toggle(); 124 125 return; 126 } 127 128 var $bookmark_panel = $bookmark_btn.next('.cbxwpbkmarklistwrap'); 129 130 CBXWPBookmarkEvents_do_action('cbxwpbookmark_trigger_user', $bookmark_btn, $bookmark_panel); 131 132 var $object_id = $bookmark_btn.data('object_id'); //post id 133 var $object_type = $bookmark_btn.data('type'); //post type 134 135 //user category or global category mode 136 if (cbxwpbookmark.bookmark_mode !== 'no_cat') { 137 //if mode is user_cat or global_cat 138 139 CBXWPBookmarkEvents_do_action('cbxwpbookmark_trigger_cats_pre', $bookmark_btn, $bookmark_panel); 140 141 var $cat_add_form = $bookmark_panel.find('.cbxwpbkmark_cat_add_form'); 142 var $cat_edit_form = $bookmark_panel.find('.cbxwpbkmark_cat_edit_form'); 143 var $cat_book_list = $bookmark_panel.find('.cbxwpbkmark_cat_book_list'); 144 var $cat_edit_list = $bookmark_panel.find('.cbxwpbkmark_cat_edit_list'); 145 var $toolbar = $bookmark_panel.find('.cbxwpbkmark-toolbar'); 146 147 $bookmark_panel.find('.cbxlbjs-searchbar').val(''); 148 $bookmark_panel.find('.cbxwpbkmark-field-cat').val('').removeClass('error'); 149 $bookmark_panel.find('.cbxwpbkmark-form-note').hide().text('').removeClass('cbxwpbkmark-form-note-success'); 150 151 $cat_add_form.hide(); 152 $cat_edit_form.hide(); 153 $cat_edit_list.hide(); 154 //$toolbar.find('.cbxwpbkmark-toolbar-listcat').hide(); 155 $toolbar.find('.cbxwpbkmark-toolbar-listcat').addClass('cbxwpbkmark-hide'); 156 157 $cat_book_list.show(); 158 //$toolbar.find('.cbxwpbkmark-toolbar-newcat').show(); 159 $toolbar.find('.cbxwpbkmark-toolbar-newcat').removeClass('cbxwpbkmark-hide'); 160 $bookmark_btn.find('.cbxwpbkmarktrig_label').text(cbxwpbookmark.add_to_head_default); 161 162 /* cbxReposition($bookmark_btn[0], $bookmark_panel[0],{ 163 position: 'bottom-middle' 164 //container: $bookmark_panel[0].getBoundingClientRect() 165 });*/ 166 167 /* window.computePosition($bookmark_btn[0], $bookmark_panel[0], { 168 placement: 'bottom', 169 strategy: 'absolute', //fixed | absolute 170 middleware: [window.autoPlacement()], 171 }).then(({x, y}) => { 172 Object.assign($bookmark_panel[0].style, { 173 left: x+'px', 174 top: y+'px' 175 }); 176 });*/ 177 178 $($bookmark_panel).toggle('fast', function () { 179 //if current user can not create category 180 if (Number(cbxwpbookmark.user_can_create_cat) === 0) { 181 $cat_add_form.remove(); 182 $toolbar.find('.cbxwpbkmark-toolbar-newcat').remove(); 183 } 184
185 //show the ajax icon 186 $bookmark_panel.find('.cbxwpbkmarkloading').show(); 187 //send ajax request to popular the categories as fresh 188 189 var data = { 190 'action': 'cbx_find_category', 191 'security': cbxwpbookmark.nonce, 192 'object_id': $object_id, 193 'object_type': $object_type 194 //'cbxbookmark_lang': cbxwpbookmark.cbxbookmark_lang 195 }; 196 197 $.post(ajaxurl, data, function (response) { 198 response = $.parseJSON(response); 199 200 if (response && response.code === 1) { 201 //categories found 202 $bookmark_panel.find('.cbxwpbkmarkloading').hide(); 203 204 var cats = $.parseJSON(response.cats); 205 var $bookmark_count = Number(response.bookmark_count); 206 var $bookmark_byuser = Number(response.bookmark_byuser); 207 208 if ($bookmark_byuser > 0) { 209 $bookmark_btn.addClass('cbxwpbkmarktrig-marked'); 210 } else { 211 $bookmark_btn.removeClass('cbxwpbkmarktrig-marked'); 212 } 213 214 //update bookmark count 215 $bookmark_btn.find('.cbxwpbkmarktrig-count').html($bookmark_count); 216 217 var $cat_options_add = ''; 218 var $cat_options_edit = ''; 219 220 cbxwpbookmark.user_current_cat_count = cats.length; 221 cbxwpbookmark.user_current_cats = cats; 222 223 $.each(cats, function (key, val) { 224 $cat_options_add += '<li class="cbxlbjs-item" data-privacy="' + cats[key].privacy + '" data-incat="' + cats[key].incat + '" data-value="' + cats[key].id + '"><span title="' + cbxwpbookmark_stripslashes(cats[key].cat_name) + '" class="cbxlbjs-item-name">' + cbxwpbookmark_stripslashes(cats[key].cat_name) + '</span></li>'; 225 $cat_options_edit += '<li class="cbxlbjs-item" data-privacy="' + cats[key].privacy + '" data-incat="' + cats[key].incat + '" data-value="' + cats[key].id + '"><span title="' + cbxwpbookmark_stripslashes(cats[key].cat_name) + '" class="cbxlbjs-item-name">' + cbxwpbookmark_stripslashes(cats[key].cat_name) + '</span></li>'; 226 }); 227 228 $cat_book_list.find('.cbxwpbkmarklist').html($cat_options_add); 229 $cat_edit_list.find('.cbxwpbkmarklist').html($cat_options_edit); 230 231 if ((cbxwpbookmark.max_cat_limit > 0) && (cbxwpbookmark.user_current_cat_count >= cbxwpbookmark.max_cat_limit)) { 232 //$bookmark_panel.find('.cbxwpbkmark-toolbar-newcat').hide(); 233 $bookmark_panel.find('.cbxwpbkmark-toolbar-newcat').addClass('cbxwpbkmark-hide'); 234 } 235 236 CBXWPBookmarkEvents_do_action('cbxwpbookmark_trigger_cats_loaded', $bookmark_btn, $bookmark_panel, cats); 237 238 } else { 239 //failed to get category for this user 240 241 $bookmark_panel.find('.cbxwpbkmarkloading').hide(); 242 $cat_book_list.show(); 243 244 //if no category found show message and put option to create one 245 $bookmark_panel.find('.cbxwpbkmarklist').hide(); 246 if ($bookmark_panel.find('.cbxwpbkmark-lbjs').find('.cbxwpbkmarklist-nocatfound').length === 0) { 247 if (cbxwpbookmark.bookmark_mode === 'user_cat') { 248 $bookmark_panel.find('.cbxwpbkmark-lbjs').append('<p class="cbxwpbkmarklist-nocatfound"><span data-clicked="0" class="cbxwpbkmarklist-nocatfoundtrig">' + response.msg + '</span></p>'); 249 } else if (cbxwpbookmark.bookmark_mode === 'global_cat') { 250 $bookmark_panel.find('.cbxwpbkmark-lbjs').append('<p class="cbxwpbkmarklist-nocatfound">' + response.msg + '</p>'); 251 } 252 253 } 254 255 } 256 257 }); 258 }); 259 } 260 else { 261 CBXWPBookmarkEvents_do_action('cbxwpbookmark_trigger_nocats_pre', $bookmark_btn, $bookmark_panel); 262 263 //no category or single click mode 264 var $busy = Number($bookmark_btn.data('busy')); 265 if ($busy === 1) return; 266 267 268 $bookmark_btn.data('busy', 1); 269 //$bookmark_btn.addClass('cbxwpbkmarktrig-busy'); 270 $bookmark_btn.addClass('running'); 271 272 var $bookmark_label = $bookmark_btn.data('bookmark-label'); 273 var $bookmarked_label = $bookmark_btn.data('bookmarked-label'); 274 var $show_count = Number($bookmark_btn.data('show-count')); 275 var $display_label = Number($bookmark_btn.data('display-label')); 276 277 CBXWPBookmarkEvents_do_action('cbxwpbookmark_trigger_nocats_bk_click', $bookmark_btn, $bookmark_panel, $object_id, $object_type, 0);//last param category id 278 279 var bookmarkData = { 280 'action': 'cbx_add_bookmark', 281 'security': cbxwpbookmark.nonce, 282 'cat_id': 0, 283 'object_id': $object_id, 284 'object_type': $object_type 285 //'cbxbookmark_lang': cbxwpbookmark.cbxbookmark_lang 286 }; 287 288 $.post(ajaxurl, bookmarkData, function (response) { 289 response = $.parseJSON(response); 290 291 var $bookmark_count = Number(response.bookmark_count); 292 var $bookmark_byuser = Number(response.bookmark_byuser); 293 294 $bookmark_btn.data('busy', 0); 295 //$bookmark_btn.removeClass('cbxwpbkmarktrig-busy'); 296 $bookmark_btn.removeClass('running'); 297 298 var $show_count_html = ''; 299 if ($show_count) { 300 $show_count_html = '(<i class="cbxwpbkmarktrig-count">' + $bookmark_count + '</i>)'; 301 } 302 303 var $bookmark_label_html = ''; 304 305 var $display_label_style = ''; 306 if ($display_label === 0) {
307 $display_label_style = ' style="display:none;" '; 308 } 309 310 if ($bookmark_byuser > 0) { 311 $bookmark_label_html = '<span class="cbxwpbkmarktrig-icon"></span><span class="ld ld-ring ld-spin"></span><span ' + $display_label_style + ' class="cbxwpbkmarktrig-label">' + $bookmarked_label + $show_count_html + '</span>'; 312 313 $bookmark_btn.addClass('cbxwpbkmarktrig-marked'); 314 //$bookmark_btn.html($bookmark_label_html+$show_count_html); 315 $bookmark_btn.html($bookmark_label_html); 316 } else { 317 $bookmark_label_html = '<span class="cbxwpbkmarktrig-icon"></span><span class="ld ld-ring ld-spin"></span><span ' + $display_label_style + ' class="cbxwpbkmarktrig-label">' + $bookmark_label + $show_count_html + '</span>'; 318 319 $bookmark_btn.removeClass('cbxwpbkmarktrig-marked'); 320 //$bookmark_btn.html($bookmark_label_html+$show_count_html); 321 $bookmark_btn.html($bookmark_label_html); 322 } 323 324 CBXWPBookmarkEvents_do_action('cbxwpbookmark_trigger_nocats_bk_response', response, $bookmark_btn, $bookmark_panel, $object_id, $object_type, 0); //last param is cat id 325 326 /*$bookmark_btn.find('.cbxwpbkmarktrig-count').html($bookmark_count); 327 328 if ($bookmark_byuser > 0) { 329 $bookmark_btn.addClass('cbxwpbkmarktrig-marked'); 330 } else { 331 $bookmark_btn.removeClass('cbxwpbkmarktrig-marked'); 332 }*/ 333 334 //show modal alert if there defined 335 if (response.alert_msg) { 336 new AWN(awn_options).warning(response.alert_msg); 337 } 338 });//end response 339 340 341 }//end no cat mode 342 343 });//end: on click on +add it will open the boomark panel 344 345 //on click add category(show category form panel) 346 $(document.body).on('click', '.cbxwpbkmark-toolbar-newcat', function (event) { 347 event.preventDefault(); 348 349 var $this = $(this); 350 351 var $bookmark_panel = $this.closest('.cbxwpbkmarklistwrap'); 352 var $cat_add_form = $bookmark_panel.find('.cbxwpbkmark_cat_add_form'); 353 var $cat_book_list = $bookmark_panel.find('.cbxwpbkmark_cat_book_list'); 354 var $cat_edit_form = $bookmark_panel.find('.cbxwpbkmark_cat_edit_form'); 355 var $cat_edit_list = $bookmark_panel.find('.cbxwpbkmark_cat_edit_list'); 356 var $toolbar = $bookmark_panel.find('.cbxwpbkmark-toolbar'); 357 358 if ((cbxwpbookmark.max_cat_limit > 0) && (cbxwpbookmark.user_current_cat_count >= cbxwpbookmark.max_cat_limit)) { 359 //$this.hide(); 360 $this.addClass('cbxwpbkmark-hide'); 361 alert(cbxwpbookmark.max_cat_limit_error); 362 return; 363 } else { 364 //hide new button, show list button 365 //$toolbar.find('.cbxwpbkmark-toolbar-listcat').show(); 366 $toolbar.find('.cbxwpbkmark-toolbar-listcat').removeClass('cbxwpbkmark-hide'); 367 //$this.hide(); 368 $this.addClass('cbxwpbkmark-hide'); 369 370 $cat_book_list.hide(); //hide default category list panel 371 $cat_edit_list.hide(); //hide bookmark manage categories 372 $cat_add_form.show(); //show category create form wrapper 373 $cat_edit_form.hide(); //hide category edit 374 375 $cat_add_form.find('.cbxwpbkmark-form-note').val('').hide(); 376 $cat_add_form.find('.cbxwpbkmark-field-cat').val(''); 377 $cat_add_form.find('.cbxwpbkmark-field-catid').val('0'); 378 379 //$cat_add_form.find('.cbxwpbkmark-field-privacy').val(1); 380 $cat_add_form.find('.cbxwpbkmark-field-privacy').val(cbxwpbookmark.category_default_status); 381 382 $cat_add_form.find('.cbxwpbkmark-field-cat').focus(); 383 $bookmark_panel.find('.cbxwpbkmarktrig_label').text(cbxwpbookmark.add_to_head_cat_create); 384 } 385 });//end: on click add category(show category form panel) 386 387 //on click manage categories 388 $(document.body).on('click', '.cbxwpbkmark-toolbar-editcat', function (event) { 389 event.preventDefault(); 390 391 var $this = $(this); 392 var $object_id = $this.data('object_id'); //post id 393 var $object_type = $this.data('type'); //post type 394 395 var $bookmark_panel = $this.closest('.cbxwpbkmarklistwrap'); 396 var $cat_add_form = $bookmark_panel.find('.cbxwpbkmark_cat_add_form'); 397 var $cat_book_list = $bookmark_panel.find('.cbxwpbkmark_cat_book_list'); 398 var $cat_edit_form = $bookmark_panel.find('.cbxwpbkmark_cat_edit_form'); 399 var $cat_edit_list = $bookmark_panel.find('.cbxwpbkmark_cat_edit_list'); 400 var $toolbar = $bookmark_panel.find('.cbxwpbkmark-toolbar'); 401 402 $cat_add_form.hide(); 403 $cat_edit_form.hide(); 404 $cat_book_list.hide(); 405 $cat_edit_list.show(); 406 //$this.hide(); 407 408 //$toolbar.find('.cbxwpbkmark-toolbar-newcat').hide(); 409 $toolbar.find('.cbxwpbkmark-toolbar-newcat').addClass('cbxwpbkmark-hide'); 410 //$toolbar.find('.cbxwpbkmark-toolbar-listcat').show(); 411 $toolbar.find('.cbxwpbkmark-toolbar-listcat').removeClass('cbxwpbkmark-hide'); 412 413 $cat_edit_list.find('.cbxlbjs-searchbar').val(''); 414 $bookmark_panel.find('.cbxwpbkmarkloading').show(); 415 416 var data = { 417 'action': 'cbx_find_category', 418 'security': cbxwpbookmark.nonce, 419 'object_id': $object_id, 420 'object_type': $object_type, 421 // 'cbxbookmark_lang': cbxwpbookmark.cbxbookmark_lang 422 }; 423 424 $.post(ajaxurl, data, function (response) { 425 response = $.parseJSON(response); 426 427 if (response && response.code === 1) { 428 //categories found 429 $bookmark_panel.find('.cbxwpbkmarkloading').hide(); 430 431 var cats = $.parseJSON(response.cats); 432 433 var $cat_options_add = ''; 434 var $cat_options_edit = ''; 435 436 cbxwpbookmark.user_current_cat_count = cats.length; 437 cbxwpbookmark.user_current_cats = cats; 438 439 $.each(cats, function (key, val) { 440 $cat_options_add += '<li class="cbxlbjs-item" data-catname="' + cbxwpbookmark_stripslashes(cats[key].cat_name) + '" data-privacy="' + cats[key].privacy + '" data-incat="' + cats[key].incat + '" data-value="' + cats[key].id + '"><span title="' + cbxwpbookmark_stripslashes(cats[key].cat_name) + '" class="cbxlbjs-item-name">' + cbxwpbookmark_stripslashes(cats[key].cat_name) + '</span></li>'; 441 442 $cat_options_edit += '<li class="cbxlbjs-item" data-catname="' + cbxwpbookmark_stripslashes(cats[key].cat_name) + '" data-privacy="' + cats[key].privacy + '" data-incat="' + cats[key].incat + '" data-value="' + cats[key].id + '"><span title="' + cbxwpbookmark_stripslashes(cats[key].cat_name) + '" class="cbxlbjs-item-name">' + cbxwpbookmark_stripslashes(cats[key].cat_name) + '</span></li>'; 443 444 }); 445 446 $cat_book_list.find('.cbxwpbkmarklist').html($cat_options_add); 447 $cat_edit_list.find('.cbxwpbkmarklist').html($cat_options_edit); 448 449 $bookmark_panel.find('.cbxwpbkmarktrig_label').text(cbxwpbookmark.add_to_head_cat_list); 450 451 } else { 452 //failed to get category for this user 453 454 $bookmark_panel.find('.cbxwpbkmarkloading').hide(); 455 456 //$cat_book_list.hide(); 457 //$cat_edit_list.show(); 458 459 //if no category found show message and put option to create one 460 $cat_edit_list.find('.cbxwpbkmarklist').hide(); 461 if ($cat_edit_list.find('.cbxwpbkmarklist-nocatfound').length === 0) { 462 if (cbxwpbookmark.bookmark_mode === 'user_cat') { 463 $cat_edit_list.find('.cbxwpbkmark-lbjs').append('<p class="cbxwpbkmarklist-nocatfound"><span data-clicked="0" class="cbxwpbkmarklist-nocatfoundtrig">' + response.msg + '</span></p>'); 464 } else if (cbxwpbookmark.bookmark_mode === 'global_cat') { 465 $cat_edit_list.find('.cbxwpbkmark-lbjs').append('<p class="cbxwpbkmarklist-nocatfound">' + response.msg + '</p>'); 466 } 467 } 468 469 } 470 471 }); 472 });//end: on click manage categories 473 474 //on click list categories 475 $(document.body).on('click', '.cbxwpbkmark-toolbar-listcat', function (event) { 476 event.preventDefault(); 477 478 var $this = $(this); 479 var $object_id = $this.data('object_id'); //post id 480 var $object_type = $this.data('type'); //post type 481 482 var $bookmark_panel = $this.closest('.cbxwpbkmarklistwrap'); 483 var $cat_add_form = $bookmark_panel.find('.cbxwpbkmark_cat_add_form'); 484 var $cat_book_list = $bookmark_panel.find('.cbxwpbkmark_cat_book_list'); 485 var $cat_edit_form = $bookmark_panel.find('.cbxwpbkmark_cat_edit_form'); 486 var $cat_edit_list = $bookmark_panel.find('.cbxwpbkmark_cat_edit_list'); 487 var $toolbar = $bookmark_panel.find('.cbxwpbkmark-toolbar'); 488 489 $cat_add_form.hide(); 490 $cat_edit_form.hide(); 491 $cat_book_list.show(); 492 $cat_edit_list.hide(); 493 494 //$toolbar.find('.cbxwpbkmark-toolbar-newcat').show(); 495 $toolbar.find('.cbxwpbkmark-toolbar-newcat').removeClass('cbxwpbkmark-hide'); 496 //$toolbar.find('.cbxwpbkmark-toolbar-listcat').hide(); 497 $toolbar.find('.cbxwpbkmark-toolbar-listcat').addClass('cbxwpbkmark-hide'); 498 499 $cat_book_list.find('.cbxlbjs-searchbar').val(''); 500 $bookmark_panel.find('.cbxwpbkmarkloading').show(); 501 502 var data = { 503 'action': 'cbx_find_category', 504 'security': cbxwpbookmark.nonce, 505 'object_id': $object_id, 506 'object_type': $object_type, 507 //'cbxbookmark_lang': cbxwpbookmark.cbxbookmark_lang 508 }; 509 510 $.post(ajaxurl, data, function (response) { 511 response = $.parseJSON(response); 512 513 if (response && response.code === 1) { 514 //categories found 515 $bookmark_panel.find('.cbxwpbkmarkloading').hide(); 516 517 var cats = $.parseJSON(response.cats); 518 519 var $cat_options_add = ''; 520 var $cat_options_edit = ''; 521 522 cbxwpbookmark.user_current_cat_count = cats.length; 523 cbxwpbookmark.user_current_cats = cats; 524 525 $.each(cats, function (key, val) { 526 $cat_options_add += '<li class="cbxlbjs-item" data-catname="' + cbxwpbookmark_stripslashes(cats[key].cat_name) + '" data-privacy="' + cats[key].privacy + '" data-incat="' + cats[key].incat + '" data-value="' + cats[key].id + '"><span title="' + cbxwpbookmark_stripslashes(cats[key].cat_name) + '" class="cbxlbjs-item-name">' + cbxwpbookmark_stripslashes(cats[key].cat_name) + '</span></li>'; 527 528 $cat_options_edit += '<li class="cbxlbjs-item" data-catname="' + cbxwpbookmark_stripslashes(cats[key].cat_name) + '" data-privacy="' + cats[key].privacy + '" data-incat="' + cats[key].incat + '" data-value="' + cats[key].id + '"><span title="' + cbxwpbookmark_stripslashes(cats[key].cat_name) + '" class="cbxlbjs-item-name">' + cbxwpbookmark_stripslashes(cats[key].cat_name) + '</span></li>'; 529 530 }); 531 532 $cat_book_list.find('.cbxwpbkmarklist').html($cat_options_add); 533 $cat_edit_list.find('.cbxwpbkmarklist').html($cat_options_edit); 534 535 $bookmark_panel.find('.cbxwpbkmarktrig_label').text(cbxwpbookmark.add_to_head_default); 536 537 } else { 538 //failed to get category for this user 539 540 $bookmark_panel.find('.cbxwpbkmarkloading').hide(); 541 542 //$cat_book_list.hide(); 543 //$cat_edit_list.show(); 544 545 //if no category found show message and put option to create one 546 $cat_book_list.find('.cbxwpbkmarklist').hide(); 547 if ($cat_book_list.find('.cbxwpbkmarklist-nocatfound').length === 0) { 548 if (cbxwpbookmark.bookmark_mode === 'user_cat') { 549 $cat_book_list.find('.cbxwpbkmark-lbjs').append('<p class="cbxwpbkmarklist-nocatfound"><span data-clicked="0" class="cbxwpbkmarklist-nocatfoundtrig">' + response.msg + '</span></p>'); 550 } else if (cbxwpbookmark.bookmark_mode === 'global_cat') { 551 $cat_book_list.find('.cbxwpbkmark-lbjs').append('<p class="cbxwpbkmarklist-nocatfound">' + response.msg + '</p>'); 552 } 553 } 554 555 } 556 557 }); 558 });//end: on click list categories 559 560 //on enter on category field on create mode 561 $(document.body).on('keypress', '.cbxwpbkmark-field-cat-add', function (event) { 562 //event.preventDefault(); 563 if (event.which === 13) { 564 //$('form#login').submit(); 565 var $this = $(this); 566 var $bookmark_panel = $this.closest('.cbxwpbkmarklistwrap'); 567 568 $bookmark_panel.find('.cbxwpbkmark-field-create-submit').trigger('click'); 569 570 return false; //<---- Add this line 571 } 572 }); 573 //end on enter on category field on create mode 574 575 //on click new category button 576 $(document.body).on('click', '.cbxwpbkmark-field-create-submit', function (event) { 577 event.preventDefault(); 578 579 var $this = $(this); 580 var $busy = Number($this.data('busy')); 581 if ($busy === 1) return; 582 583 var $bookmark_panel = $this.closest('.cbxwpbkmarklistwrap'); 584 var $cat_add_form = $bookmark_panel.find('.cbxwpbkmark_cat_add_form'); 585 var $cat_edit_form = $bookmark_panel.find('.cbxwpbkmark_cat_edit_form'); 586 var $cat_book_list = $bookmark_panel.find('.cbxwpbkmark_cat_book_list'); 587 var $cat_edit_list = $bookmark_panel.find('.cbxwpbkmark_cat_edit_list'); 588 var $toolbar = $bookmark_panel.find('.cbxwpbkmark-toolbar'); 589 590 if ((cbxwpbookmark.max_cat_limit > 0) && (cbxwpbookmark.user_current_cat_count >= cbxwpbookmark.max_cat_limit)) { 591 $cat_add_form.hide(); 592 593 //alert(cbxwpbookmark.max_cat_limit_error); 594 new AWN(awn_options).warning(cbxwpbookmark.max_cat_limit_error); 595 596 return; 597 } 598 599 var $object_id = $bookmark_panel.data('object_id'); 600 var $object_type = $bookmark_panel.data('type'); 601 var $cat_field = $cat_add_form.find('.cbxwpbkmark-field-cat'); 602 var $privacy_field = $cat_add_form.find('.cbxwpbkmark-field-privacy'); 603 var $catid_field = $cat_add_form.find('.cbxwpbkmark-field-catid'); 604 605 var $cat_name = $cat_field.val(); 606 var $privacy = Number($privacy_field.val()); 607 var $cat_id = Number($catid_field.val()); 608 609 $cat_field.removeClass('error'); 610 $cat_add_form.find('.cbxwpbkmark-form-note').hide().removeClass('cbxwpbkmark-form-note-success').text(''); 611 612 //check if the input text field is empty or not 613 //if the text input for category name validate then send ajax request 614 615 if ($cat_name !== '') { 616 617 var $ajax_action = ($cat_id > 0) ? 'cbx_edit_bookmark_category' : 'cbx_add_bookmark_category'; 618 $bookmark_panel.find('.cbxwpbkmarkloading').show(); 619 620 //send ajax request 621 v
621ar data = { 622 'action': $ajax_action, 623 'security': cbxwpbookmark.nonce, 624 'cat_name': $cat_name, 625 'privacy': $privacy, 626 'cat_id': $cat_id, 627 'object_id': $object_id, 628 'object_type': $object_type, 629 //'cbxbookmark_lang': cbxwpbookmark.cbxbookmark_lang 630 }; 631 632 $this.data('busy', 1); 633 $this.addClass('running'); 634 635 // We can also pass the url value separately from ajaxurl for front end AJAX implementations 636 $.post(ajaxurl, data, function (response) { 637 response = $.parseJSON(response); 638 639 if (response.code === 1) { 640 641 //category created 642 //$cat_name.val(''); 643 644 $bookmark_panel.find('.cbxwpbkmarktrig_label').text(cbxwpbookmark.add_to_head_cat_edit); 645 646 $catid_field.val(response.cat_id); 647 648 var cats = $.parseJSON(response.cats); 649 cbxwpbookmark.user_current_cat_count = cats.length; 650 cbxwpbookmark.user_current_cats = cats; 651 652 var $cat_options_add = ''; 653 var $cat_options_edit = ''; 654 655 $.each(cats, function (key, val) { 656 $cat_options_add += '<li class="cbxlbjs-item" data-privacy="' + cats[key].privacy + '" data-incat="' + cats[key].incat + '" data-value="' + cats[key].id + '"><span title="' + cbxwpbookmark_stripslashes(cats[key].cat_name) + '" class="cbxlbjs-item-name">' + cbxwpbookmark_stripslashes(cats[key].cat_name) + '</span></li>'; 657 658 $cat_options_edit += '<li class="cbxlbjs-item" data-privacy="' + cats[key].privacy + '" data-incat="' + cats[key].incat + '" data-value="' + cats[key].id + '"><span title="' + cbxwpbookmark_stripslashes(cats[key].cat_name) + '" class="cbxlbjs-item-name">' + cbxwpbookmark_stripslashes(cats[key].cat_name) + '</span></li>'; 659 }); 660 661 $bookmark_panel.find('.cbxwpbkmarklist').show(); 662 $bookmark_panel.find('.cbxwpbkmarkloading').hide(); 663 $bookmark_panel.find('.cbxwpbkmarklist-nocatfound').remove(); 664 665 $cat_book_list.find('.cbxwpbkmarklist').html($cat_options_add); 666 $cat_edit_list.find('.cbxwpbkmarklist').html($cat_options_edit); 667 668 //show success message 669 $cat_add_form.find('.cbxwpbkmark-form-note').show().addClass('cbxwpbkmark-form-note-success').text(response.msg); 670 671 //check if max user cat limit crossed 672 if ((cbxwpbookmark.max_cat_limit > 0) && (cbxwpbookmark.user_current_cat_count >= cbxwpbookmark.max_cat_limit)) { 673 //then hide the category create panel 674 $cat_add_form.hide(); 675 $this.hide(); 676 $bookmark_panel.find('.cbxwpbkmarktrig_label').text(cbxwpbookmark.add_to_head_max_cat); 677 678 } 679 680 } else { 681 //failed or duplicate 682 $bookmark_panel.find('.cbxwpbkmarkloading').hide('slow'); 683 $cat_add_form.find('.cbxwpbkmark-form-note').show().text(response.msg); 684 $cat_field.addClass('error'); 685 }//end failed 686 687 $this.data('busy', 0); 688 $this.removeClass('running'); 689 }); 690 691 } else { 692 $cat_field.addClass('error'); 693 $cat_add_form.find('.cbxwpbkmark-form-note').show().text(cbxwpbookmark.category_name_empty); 694 } 695 696 });//end: on click new category button 697 698 //on enter on category field on edit mode 699 $(document.body).on('keypress', '.cbxwpbkmark-field-cat-edit', function (event) { 700 //event.preventDefault(); 701 if (event.which === 13) { 702 //$('form#login').submit(); 703 var $this = $(this); 704 var $bookmark_panel = $this.closest('.cbxwpbkmarklistwrap'); 705 706 $bookmark_panel.find('.cbxwpbkmark-field-update-submit').trigger('click'); 707 708 return false; //<---- Add this line 709 } 710 }); 711 //end on enter on category field on create mode 712 713 //on click Edit category button 714 $(document.body).on('click', '.cbxwpbkmark-field-update-submit', function (event) { 715 event.preventDefault(); 716 717 var $this = $(this); 718 var $busy = Number($this.data('busy')); 719 if ($busy === 1) return; 720 721 var $bookmark_panel = $this.closest('.cbxwpbkmarklistwrap'); 722 var $cat_add_form = $bookmark_panel.find('.cbxwpbkmark_cat_add_form'); 723 var $cat_edit_form = $bookmark_panel.find('.cbxwpbkmark_cat_edit_form'); 724 var $cat_book_list = $bookmark_panel.find('.cbxwpbkmark_cat_book_list'); 725 var $cat_edit_list = $bookmark_panel.find('.cbxwpbkmark_cat_edit_list'); 726 var $toolbar = $bookmark_panel.find('.cbxwpbkmark-toolbar'); 727 728 var $object_id = Number($bookmark_panel.data('object_id')); 729 var $object_type = $bookmark_panel.data('type'); 730 var $cat_field = $cat_edit_form.find('.cbxwpbkmark-field-cat'); 731 var $privacy_field = $cat_edit_form.find('.cbxwpbkmark-field-privacy'); 732 var $catid_field = $cat_edit_form.find('.cbxwpbkmark-field-catid'); 733 734 var $cat_name = $cat_field.val(); 735 var $privacy = Number($privacy_field.val()); 736 var $cat_id = Number($catid_field.val()); 737 738 $cat_field.removeClass('error'); 739 $cat_edit_form.find('.cbxwpbkmark-form-note').hide().removeClass('cbxwpbkmark-form-note-success').text(''); 740 741 //check if the input text field is empty or not 742 //if the text input for category name validate then send ajax request 743 744 if ($cat_name !== '') { 745 746 //$bookmark_panel.find('.cbxwpbkmarkloading').show(); 747 748 //send ajax request 749 var data = { 750 'action': 'cbx_edit_bookmark_category', 751 'security': cbxwpbookmark.nonce, 752 'cat_name': $cat_name, 753 'privacy': $privacy, 754 'cat_id': $cat_id, 755 'object_id': $object_id, 756 'object_type': $object_type, 757 //'cbxbookmark_lang': cbxwpbookmark.cbxbookmark_lang 758 }; 759 760 $this.data('busy', 1); 761 $this.addClass('running'); 762 763 // We can also pass the url value separately from aja
763xurl for front end AJAX implementations 764 $.post(ajaxurl, data, function (response) { 765 response = $.parseJSON(response); 766 767 if (response.code === 1) { 768 var cats = $.parseJSON(response.cats); 769 cbxwpbookmark.user_current_cat_count = cats.length; 770 cbxwpbookmark.user_current_cats = cats; 771 772 var $cat_options_add = ''; 773 var $cat_options_edit = ''; 774 775 $.each(cats, function (key, val) { 776 $cat_options_add += '<li class="cbxlbjs-item" data-catname="' + cats[key].cat_name + '" data-privacy="' + cats[key].privacy + '" data-incat="' + cats[key].incat + '" data-value="' + cats[key].id + '"><span title="' + cbxwpbookmark_stripslashes(cats[key].cat_name) + '" class="cbxlbjs-item-name">' + cbxwpbookmark_stripslashes(cats[key].cat_name) + '</span></li>'; 777 778 $cat_options_edit += '<li class="cbxlbjs-item" data-catname="' + cats[key].cat_name + '" data-privacy="' + cats[key].privacy + '" data-incat="' + cats[key].incat + '" data-value="' + cats[key].id + '"><span title="' + cbxwpbookmark_stripslashes(cats[key].cat_name) + '" class="cbxlbjs-item-name">' + cbxwpbookmark_stripslashes(cats[key].cat_name) + '</span></li>'; 779 }); 780 781 $bookmark_panel.find('.cbxwpbkmarklist').show(); 782 //$bookmark_panel.find('.cbxwpbkmarkloading').hide(); 783 $bookmark_panel.find('.cbxwpbkmarklist-nocatfound').remove(); 784 785 $cat_book_list.find('.cbxwpbkmarklist').html($cat_options_add); 786 $cat_edit_list.find('.cbxwpbkmarklist').html($cat_options_edit); 787 788 //show success message 789 $cat_edit_form.find('.cbxwpbkmark-form-note').show().addClass('cbxwpbkmark-form-note-success').text(response.msg); 790 } else { 791 //failed or duplicate 792 //$bookmark_panel.find('.cbxwpbkmarkloading').hide('slow'); 793 $cat_edit_form.find('.cbxwpbkmark-form-note').show().text(response.msg); 794 $cat_field.addClass('error'); 795 }//end failed 796 797 $this.data('busy', 0); 798 $this.removeClass('running'); 799 }); 800 801 } else { 802 $cat_field.addClass('error'); 803 $cat_edit_form.find('.cbxwpbkmark-form-note').show().text(cbxwpbookmark.category_name_empty); 804 } 805 806 });//end: on click Edit category button 807 808 809 //on click close add new category panel 810 $(document.body).on('click', '.cbxwpbkmark-field-create-close', function (event) { 811 event.preventDefault(); 812 813 var $this = $(this); 814 //var $parent = $this.closest('.cbxwpbkmark-toolbar'); 815 var $bookmark_panel = $this.closest('.cbxwpbkmarklistwrap'); 816 var $cat_add_form = $bookmark_panel.find('.cbxwpbkmark_cat_add_form'); 817 var $cat_edit_form = $bookmark_panel.find('.cbxwpbkmark_cat_edit_form'); 818 var $cat_book_list = $bookmark_panel.find('.cbxwpbkmark_cat_book_list'); 819 var $cat_edit_list = $bookmark_panel.find('.cbxwpbkmark_cat_edit_list'); 820 var $toolbar = $bookmark_panel.find('.cbxwpbkmark-toolbar'); 821 822 //cbxwpbkmark-field-wrap 823 $cat_add_form.hide(); 824 $cat_edit_form.hide(); 825 $cat_book_list.show(); 826 $cat_edit_list.hide(); 827 828 //$toolbar.find('.cbxwpbkmark-toolbar-newcat').hide(); 829 $toolbar.find('.cbxwpbkmark-toolbar-newcat').addClass('cbxwpbkmark-hide'); 830 //$toolbar.find('.cbxwpbkmark-toolbar-listcat').hide(); 831 $toolbar.find('.cbxwpbkmark-toolbar-listcat').addClass('cbxwpbkmark-hide'); 832 833 $bookmark_panel.find('.cbxwpbkmarktrig_label').text(cbxwpbookmark.add_to_head_default); 834 835 //check if max user cat limit crossed 836 if ((cbxwpbookmark.max_cat_limit > 0) && (cbxwpbookmark.user_current_cat_count >= cbxwpbookmark.max_cat_limit)) { 837 //then hide the category create panel 838 //$toolbar.find('.cbxwpbkmark-toolbar-newcat').hide(); 839 $toolbar.find('.cbxwpbkmark-toolbar-newcat').addClass('cbxwpbkmark-hide'); 840 } else { 841 //$toolbar.find('.cbxwpbkmark-toolbar-newcat').show(); 842 $toolbar.find('.cbxwpbkmark-toolbar-newcat').removeClass('cbxwpbkmark-hide'); 843 } 844 845 });//end: on click close add new category panel 846 847 //on click close edit category panel 848 $(document.body).on('click', '.cbxwpbkmark-field-update-close', function (event) { 849 event.preventDefault(); 850 851 var $this = $(this); 852 var $bookmark_panel = $this.closest('.cbxwpbkmarklistwrap'); 853 var $cat_add_form = $bookmark_panel.find('.cbxwpbkmark_cat_add_form'); 854 var $cat_edit_form = $bookmark_panel.find('.cbxwpbkmark_cat_edit_form'); 855 var $cat_book_list = $bookmark_panel.find('.cbxwpbkmark_cat_book_list'); 856 var $cat_edit_list = $bookmark_panel.find('.cbxwpbkmark_cat_edit_list'); 857 var $toolbar = $bookmark_panel.find('.cbxwpbkmark-toolbar'); 858 859 //$bookmark_panel.find('.cbxwpbkmark_cat_book_list').hide(); 860 861 $cat_edit_form.hide(); 862 $cat_edit_list.show(); 863 864 $bookmark_panel.find('.cbxwpbkmarktrig_label').text(cbxwpbookmark.add_to_head_cat_edit); 865 866 });//end: on click close edit category panel 867 868 //on click delete category button 869 $(document.body).on('click', '.cbxwpbkmark-field-delete-submit', function (event) { 870 event.preventDefault(); 871 872 873 var $this = $(this); 874 var $bookmark_panel = $this.closest('.cbxwpbkmarklistwrap'); 875 var $cat_add_form = $bookmark_panel.find('.cbxwpbkmark_cat_add_form'); 876 var $cat_edit_form = $bookmark_panel.find('.cbxwpbkmark_cat_edit_form'); 877 var $cat_book_list = $bookmark_panel.find('.cbxwpbkmark_cat_book_list'); 878 var $cat_edit_list = $bookmark_panel.find('.cbxwpbkmark_cat_edit_list'); 879 var $toolbar = $bookmark_panel.find('.cbxwpbkmark-toolbar'); 880 881 var $cat_name = $cat_edit_form.find('.cbxwpbkmark-field-cat'); 882 var $cat = $cat_edit_form.find('.cbxwpbkmark-field-catid'); 883 var $object_id = Number($bookmark_panel.data('object_id')); 884 var $object_type = $bookmark_panel.data('type'); 885 886 var $cat_id = $cat.val(); 887 888 var data = { 889 'action': 'cbx_delete_bookmark_category', 890 'security': cbxwpbookmark.nonce, 891 'id': $cat_id, 892 'object_type': $object_type, 893 'object_id': $object_id 894 //'cbxbookmark_lang': cbxwpbookmark.cbxbookmark_lang 895 }; 896 897 if ($cat_id > 0) { 898 var notifier = new AWN(awn_options); 899 900 var onCancel = () => { 901 902 }; 903 904 var onOk = () => { 905 $bookmark_panel.find('.cbxwpbkmarkloading').show(); 906 $this.attr('disabled', true); 907 908 $.post(ajaxurl, data, function (response) { 909 910 $bookmark_panel.find('.cbxwpbkmarkloading').hide(); 911 response = $.parseJSON(response); 912 913 var message = ''; 914 if (response.msg === 1) { 915 916 //reset the edit fields 917 $cat_name.val(''); //reset category name field 918 $cat.val(''); //reset hidden category id field 919 920 var cats = $.parseJSON(response.cats); 921 cbxwpbookmark.user_current_cat_count = cats.length; 922 cbxwpbookmark.user_current_cats = cats; 923 924 var $cat_options_add = ''; 925 var $cat_options_edit = ''; 926 927 $.each(cats, function (key, val) { 928 $cat_options_add += '<li class="cbxlbjs-item" data-catname="' + cats[key].cat_name + '" data-privacy="' + cats[key].privacy + '" data-incat="' + cats[key].incat + '" data-value="' + cats[key].id + '"><span title="' + cbxwpbookmark_stripslashes(cats[key].cat_name) + '" class="cbxlbjs-item-name">' + cbxwpbookmark_stripslashes(cats[key].cat_name) + '</span></li>'; 929 930 $cat_options_edit += '<li class="cbxlbjs-item" data-catname="' + cats[key].cat_name + '" data-privacy="' + cats[key].privacy + '" data-incat="' + cats[key].incat + '" data-value="' + cats[key].id + '"><span title="' + cbxwpbookmark_stripslashes(cats[key].cat_name) + '" class="cbxlbjs-item-name">' + cbxwpbookmark_stripslashes(cats[key].cat_name) + '</span></li>'; 931 }); 932 933 $bookmark_panel.find('.cbxwpbkmarklist-nocatfound').remove(); 934 935 //update category list for add view and edit view 936 $cat_book_list.find('.cbxwpbkmarklist').html($cat_options_add); 937 $cat_edit_list.find('.cbxwpbkmarklist').html($cat_options_edit); 938 939 //hide the category edit panel 940 $cat_edit_form.hide(); 941 $cat_edit_list.show(); 942 943 // success Message 944 message = cbxwpbookmark.category_delete_success; 945 $cat_edit_form.find('.cbxwpbkmark-form-note').hide().addClass('cbxwpbkmark-form-note-success').text(''); 946 $bookmark_panel.find('.cbxwpbkmarktrig_label').text(message); 947 } else { 948 message = cbxwpbookmark.category_delete_error; 949 $cat_edit_form.find('.cbxwpbkmark-form-note').show().text(message); 950 } 951 952 $this.attr('disabled', false); 953 }); 954 }; 955 956 notifier.confirm( 957 cbxwpbookmark.are_you_sure_delete_desc, 958 onOk, 959 onCancel, 960 { 961 labels: { 962 confirm: cbxwpbookmark.are_you_sure_global 963 } 964 } 965 ); 966 967 } 968 });//end: on click delete category button 969 970 //adding click event on the list - bookmark list 971 $(document.body).on('click', '.cbxwpbkmark_cat_book_list .cbxlbjs-item', function (e) { 972 973 var $item = $(this); 974 var $bookmark_panel = $item.closest('.cbxwpbkmarklistwrap'); 975 var $cat_add_form = $bookmark_panel.find('.cbxwpbkmark_cat_add_form'); 976 var $cat_edit_form = $bookmark_panel.find('.cbxwpbkmark_cat_edit_form'); 977 var $cat_book_list = $bookmark_panel.find('.cbxwpbkmark_cat_book_list'); 978 var $cat_edit_list = $bookmark_panel.find('.cbxwpbkmark_cat_edit_list'); 979 var $toolbar = $bookmark_panel.find('.cbxwpbkmark-toolbar'); 980 981 $bookmark_panel.find('.cbxwpbkmarkloading').show(); 982 983 var $bookmark_panel_parent = $bookmark_panel.closest('.cbxwpbkmarkwrap'); 984 var $bookmark_btn = $bookmark_panel_parent.find('.cbxwpbkmarktrig'); 985 986 var $object_id = $bookmark_panel.data('object_id'); 987 var $object_type = $bookmark_panel.data('type'); //object type 988 989 var $cat_id = $item.attr('data-value'); 990 991 var $bookmark_label = $bookmark_btn.data('bookmark-label'); 992 var $bookmarked_label = $bookmark_btn.data('bookmarked-label'); 993 var $show_count = Number($bookmark_btn.data('show-count')); 994 var $display_label = Number($bookmark_btn.data('display-label')); 995 996 997 CBXWPBookmarkEvents_do_action('cbxwpbookmark_trigger_cats_bk_click', $bookmark_btn, $bookmark_panel, $object_id, $object_type, $cat_id);//last param category id 998 999 //now send ajax request to save this post id and category as bookmark for this user 1000 //post id already in variable $object_id 1001 1002 var bookmarkData = { 1003 'action': 'cbx_add_bookmark', 1004 'security': cbxwpbookmark.nonce, 1005 'cat_id': $cat_id, 1006 'object_id': $object_id, 1007 'object_type': $object_type, 1008 //'cbxbookmark_lang': cbxwpbookmark.cbxbookmark_lang 1009 }; 1010 1011 $.post(ajaxurl, bookmarkData, function (response) { 1012 1013 response = $.parseJSON(response); 1014 var $bookmark_count = Number(response.bookmark_count); 1015 var $bookmark_byuser = Number(response.bookmark_byuser); 1016 1017 1018 if (response && response.code === 1) { 1019 $item.attr('data-incat', response.operation); 1020 1021 $bookmark_panel.find('.cbxwpbkmarkloading').hide(); 1022 $bookmark_panel.find('.cbxwpbkmarktrig_label').text(response.msg); 1023 1024 var $show_count_html = ''; 1025 if ($show_count) { 1026 $show_count_html = '(<i class="cbxwpbkmarktrig-count">' + $bookmark_count + '</i>)'; 1027 } 1028 1029 var $display_label_style = ''; 1030 if ($display_label === 0) {
1031 $display_label_style = ' style="display:none;" '; 1032 } 1033 1034 if ($bookmark_byuser > 0) { 1035 var $bookmark_label_html = '<span class="cbxwpbkmarktrig-icon"></span><span ' + $display_label_style + ' class="cbxwpbkmarktrig-label">' + $bookmarked_label + $show_count_html + '</span>'; 1036 1037 $bookmark_btn.addClass('cbxwpbkmarktrig-marked'); 1038 //$bookmark_btn.html($bookmark_label_html+$show_count_html); 1039 $bookmark_btn.html($bookmark_label_html); 1040 } else { 1041 var $bookmark_label_html = '<span class="cbxwpbkmarktrig-icon"></span><span ' + $display_label_style + ' class="cbxwpbkmarktrig-label">' + $bookmark_label + $show_count_html + '</span>'; 1042 1043 $bookmark_btn.removeClass('cbxwpbkmarktrig-marked'); 1044 //$bookmark_btn.html($bookmark_label_html+$show_count_html); 1045 $bookmark_btn.html($bookmark_label_html); 1046 } 1047 1048 CBXWPBookmarkEvents_do_action('cbxwpbookmark_trigger_cats_bk_response', response, $bookmark_btn, $bookmark_panel, $object_id, $object_type, $cat_id); 1049 1050 } else { 1051 $bookmark_panel.find('.cbxwpbkmarktrig_label').text(response.msg); 1052 $bookmark_panel.find('.cbxwpbkmarkloading').hide(); 1053 } 1054 1055 //show modal alert if there defined 1056 if (response.alert_msg) { 1057 new AWN(awn_options).warning(response.alert_msg); 1058 } 1059 });//end response 1060 1061 });//end: adding click event on the list - bookmark list 1062 1063 //adding click event on the list - bookmark edit list 1064 $(document.body).on('click', '.cbxwpbkmark_cat_edit_list .cbxlbjs-item', function (e) { 1065 var $this = $(this); 1066 var $bookmark_panel = $(this).closest('.cbxwpbkmarklistwrap'); 1067 var $cat_add_form = $bookmark_panel.find('.cbxwpbkmark_cat_add_form'); 1068 var $cat_edit_form = $bookmark_panel.find('.cbxwpbkmark_cat_edit_form'); 1069 var $cat_book_list = $bookmark_panel.find('.cbxwpbkmark_cat_book_list'); 1070 var $cat_edit_list = $bookmark_panel.find('.cbxwpbkmark_cat_edit_list'); 1071 var $toolbar = $bookmark_panel.find('.cbxwpbkmark-toolbar'); 1072 1073 var $object_id = $bookmark_panel.data('object_id'); 1074 var $object_type = $bookmark_panel.data('type'); //object type 1075 1076 var $cat_id = Number($this.attr('data-value')); 1077 var $cat_privacy = Number($this.attr('data-privacy')); 1078 var $cat_name = $this.attr('data-catname'); 1079 1080 $cat_edit_list.hide(); 1081 $cat_edit_form.show(); 1082 1083 $cat_edit_form.find('.cbxwpbkmark-field-cat').val($cat_name).focus(); 1084 $cat_edit_form.find('.cbxwpbkmark-field-catid').val($cat_id); 1085 $cat_edit_form.find('.cbxwpbkmark-field-privacy_' + $object_id).val($cat_privacy); 1086 1087 $bookmark_panel.find('.cbxwpbkmarktrig_label').text(cbxwpbookmark.add_to_head_cat_edit); 1088 });//end: adding click event on the list - bookmark edit list 1089 1090 //on click on nocategory found 1091 $(document.body).on('click', '.cbxwpbkmarklist-nocatfoundtrig', function (event) { 1092 event.preventDefault(); 1093 1094 var $this = $(this); 1095 var $bookmark_panel = $this.closest('.cbxwpbkmarklistwrap'); 1096 $bookmark_panel.find('.cbxwpbkmark-toolbar-newcat').trigger('click'); 1097 });//end: on click on nocategory found 1098 1099 //on click on close icon disable the bookmark popup 1100 $(document.body).on('click', '.cbxwpbkmarktrig_close', function (event) { 1101 var $this = $(this); 1102 var $bookmark_panel = $this.closest('.cbxwpbkmarklistwrap'); 1103 1104 $bookmark_panel.fadeOut(); 1105 1106 //CBXWPBookmarkEvents_do_action('cbxwpbookmark_pop_closed', $this, $bookmark_panel); 1107 });//end: on click on close icon disable the bookmark popup 1108 1109 //on click on close icon disable the bookmark popup for guest view 1110 $(document.body).on('click', '.cbxwpbkmarkguesttrig_close', function (event) { 1111 event.stopPropagation(); 1112 event.preventDefault(); 1113 1114 var $this = $(this); 1115 var $bookmark_panel = $this.closest('.cbxwpbkmarkguestwrap'); 1116 $bookmark_panel.fadeOut(); 1117 1118 //CBXWPBookmarkEvents_do_action('cbxwpbookmark_pop_guest_closed', $this, $bookmark_panel); 1119 });//end: on click on close icon disable the bookmark popup for guest view 1120 1121 //on click on any where of body except the bookmark popup close the bookmark popup 1122 $('body').on('mouseup', function (e) { 1123 var $bookmark_panel = $('.cbxwpbkmarklistwrap'); 1124 if ((e.target.id !== 'cbxwpbkmarklistwrap-' + $bookmark_panel.data('object_id')) && !$bookmark_panel.has(e.target).length) { 1125 $bookmark_panel.fadeOut(); 1126 } 1127 1128 var $bookmark_guest_panel = $('.cbxwpbkmarkguestwrap'); 1129 if ((e.target.id !== 'cbxwpbkmarkguestwrap-' + $bookmark_guest_panel.data('object_id')) && !$bookmark_guest_panel.has(e.target).length) { 1130 $bookmark_guest_panel.fadeOut(); 1131 } 1132 });//end: on click on any where of body except the bookmark popup close the bookmark popup 1133 1134 //category search using fuzzy logic 1135 $(document.body).on('keyup', '.cbxlbjs-searchbar', function (event) { 1136 var $this = $(this); 1137 var val = $this.val(); 1138 1139 var catlistholder = $this.closest('.cbxlbjs-searchbar-wrapper').next('.cbxwpbkmarklist'); 1140 1141 if (this.value.length > 0) { 1142 catlistholder.find('li').hide().filter(function () { 1143 return $(this).text().toLowerCase().indexOf(val.toLowerCase()) !== -1; 1144 }).show(); 1145 } else { 1146 catlistholder.find('li').show(); 1147 } 1148 1149 }); 1150 1151 //we don't need this as after changing css class name the above code works for both book list and edit list 1152 /*$(document.body).on('keyup', '.cbxlbjs-searchbar-manage', function (event) { 1153 var $this = $(this); 1154 var val = $this.val(); 1155 1156 var catlistholder = $this.closest('.cbxlbjs-searchbar-wrapper-manage').next('.cbxwpbkmarklist-manage'); 1157 1158 if (this.value.length > 0) { 1159 catlistholder.find('li').hide().filter(function () { 1160 return $(this).text().toLowerCase().indexOf(val.toLowerCase()) !== -1; 1161 }).show(); 1162 } 1163 else { 1164 catlistholder.find('li').show(); 1165 } 1166 1167 });*/ 1168 1169 /* User Front Admin */ 1170 1171 //my category delete button action 1172 $('.cbxbookmark-category-list').on('click', '.cbxbookmark-delete-btn', function (event) { 1173 event.preventDefault(); 1174 1175 var $this = $(this); 1176 var $this_item = $this.closest('li'); 1177 var $this_wrapper = $this_item.closest('ul'); 1178 var $id = $this.data('id'); 1179 //var $object_id = Number($this.data('object_id')); 1180 //var $object_type = $this.data('object_type'); 1181 1182 var data = { 1183 'action': 'cbx_delete_bookmark_category', 1184 'security': cbxwpbookmark.nonce, 1185 'id': Number($id) 1186 //'cbxbookmark_lang': cbxwpbookmark.cbxbookmark_lang 1187 }; 1188 // We can also pass the url value separately from aja
1188xurl for front end AJAX implementations 1189 1190 if (Number($id) > 0) { 1191 var notifier = new AWN(awn_options); 1192 var onCancel = () => { 1193 1194 }; 1195 1196 var onOk = () => { 1197 $this.attr('disabled', true); 1198 //$this.addClass('cbxbookmark-delete-btn-busy'); 1199 $this.addClass('running'); 1200 1201 $.post(ajaxurl, data, function (response) { 1202 1203 response = $.parseJSON(response); 1204 1205 if (response.msg === 1) { 1206 // success Message 1207 var message = cbxwpbookmark.category_delete_success; 1208 // Remove the li tag if the category deleted 1209 $this_item.remove(); 1210 new AWN(awn_options).success(message); 1211 1212 if ($this_wrapper.find('li').length === 0) { 1213 $this_wrapper.append('<li class="cbxbookmark-category-list-item-notfound">' + cbxwpbookmark.no_cats_found + '</li>'); 1214 } 1215 1216 1217 } else { 1218 var message = cbxwpbookmark.category_delete_error; 1219 new AWN(awn_options).warning(message); 1220 1221 $this.attr('disabled', false); 1222 //$this.removeClass('cbxbookmark-delete-btn-busy'); 1223 $this.removeClass('running'); 1224 } 1225 }); 1226 }; 1227 1228 notifier.confirm( 1229 cbxwpbookmark.are_you_sure_delete_desc, 1230 onOk, 1231 onCancel, 1232 { 1233 labels: { 1234 confirm: cbxwpbookmark.are_you_sure_global 1235 } 1236 } 1237 ); 1238 1239 1240 } 1241 }); 1242 1243 //my category update event 1244 1245 1246 //on enter on category field on add mode 1247 $(document.body).on('keypress', '.cbxbmedit-catname-add', function (event) { 1248 //event.preventDefault(); 1249 if (event.which === 13) { 1250 //$('form#login').submit(); 1251 var $this = $(this); 1252 var $parent = $this.closest('#cbxbookmark-category-list-create-wrap'); 1253 1254 $parent.find('.cbxbookmark-cat-save').trigger('click'); 1255 1256 return false; 1257 } 1258 }); 1259 //end on enter on category field on add mode 1260 1261 //on enter on category field on edit mode 1262 $(document.body).on('keypress', '.cbxbmedit-catname-edit', function (event) { 1263 //event.preventDefault(); 1264 if (event.which === 13) { 1265 //$('form#login').submit(); 1266 var $this = $(this); 1267 var $parent = $this.closest('li.cbxbookmark-category-list-item'); 1268 1269 $parent.find('.cbxbookmark-cat-save').trigger('click'); 1270 1271 return false; 1272 } 1273 }); 1274 //end on enter on category field on edit mode 1275 1276 //category save button action 1277 $('.cbxbookmark-category-list').on('click', '.cbxbookmark-cat-save', function (event) { 1278 event.preventDefault(); 1279 1280 var $this = $(this); 1281 var $busy = Number($this.data('busy')); 1282 if ($busy == 1) return; 1283 1284 var $parent = $this.closest('li.cbxbookmark-category-list-item'); 1285 1286 var $ucatid = $parent.data('id'); //get this value from the parent data attribute 1287 1288 //get new value 1289 var $ucatname = $parent.find('.cbxbmedit-catname').val(); 1290 var $uprivacy = $parent.find('.cbxbmedit-privacy').val(); 1291 1292 var updatedata = { 1293 'action': 'cbx_update_bookmark_category', 1294 'security': cbxwpbookmark.nonce, 1295 'id': $ucatid, 1296 'catname': $ucatname, 1297 'privacy': $uprivacy, 1298 //'cbxbookmark_lang': cbxwpbookmark.cbxbookmark_lang 1299 }; 1300 1301 $this.data('busy', 1); 1302 $this.addClass('running'); 1303 1304 // We can also pass the url value separately from aja
1304xurl for front end AJAX implementations 1305 $.post(ajaxurl, updatedata, function (response) { 1306 1307 response = $.parseJSON(response); 1308 1309 if (response.flag === 1) { 1310 $parent.find('.cbxbookmark-mycat-editbox').hide(); 1311 $parent.data('privacy', response.privacy); 1312 $parent.data('name', response.catname); 1313 $parent.find('.cbxlbjs-item-widget').html(response.catname); 1314 } else if (response.flag === 0) { 1315 $parent.closest('.cbxbookmark-category-list').prev('.cbxbookmark-errormsg').html(response.msg); 1316 } 1317 1318 $this.data('busy', 0); 1319 $this.removeClass('running'); 1320 }); 1321 1322 }); 1323 1324 //my category edit button action 1325 //edit button action and it opens the edit panel for the clicked item 1326 $('.cbxbookmark-category-list').on('click', '.cbxbookmark-edit-btn', function (event) { 1327 event.preventDefault(); 1328 1329 var $this = $(this); 1330 1331 //var $parent = $(this).closest('.cbxbookmark-mycat-item'); 1332 var $parent = $this.closest('.cbxbookmark-category-list-item'); 1333 1334 var $catid = $parent.data('id'); 1335 var $catname = $parent.data('name'); 1336 var $privacy = $parent.data('privacy'); 1337 1338 var $editpanel = $parent.find('.cbxbookmark-mycat-editbox'); 1339 if ($editpanel.length === 0) { 1340 var $template = $.parseJSON(cbxwpbookmark.cat_template); 1341 1342 /* Repalcing Input Values */ 1343 $template = $template.replace(/##catname##/g, $catname); 1344 $parent.append($template); 1345 1346 if ($privacy === 0) { 1347 $parent.find('.cbxbmedit-privacy option:eq(1)').prop('selected', true); 1348 $parent.find('.cbxbmedit-privacy option:eq(0)').prop('selected', false); 1349 } 1350 1351 if ($privacy === 1) { 1352 $parent.find('.cbxbmedit-privacy option:eq(0)').prop('selected', true); 1353 $parent.find('.cbxbmedit-privacy option:eq(1)').prop('selected', false); 1354 } 1355 } else { 1356 $editpanel.show(); 1357 $parent.find('.cbxbmedit-catname').val($catname); 1358 //$parent.find('.cbxbmedit-privacy').val($privacy); 1359 1360 if ($privacy === 0) { 1361 $parent.find('.cbxbmedit-privacy option:eq(1)').prop('selected', true); 1362 $parent.find('.cbxbmedit-privacy option:eq(0)').prop('selected', false); 1363 } 1364 1365 if ($privacy === 1) { 1366 $parent.find('.cbxbmedit-privacy option:eq(0)').prop('selected', true); 1367 $parent.find('.cbxbmedit-privacy option:eq(1)').prop('selected', false); 1368 } 1369 } 1370 1371 }); 1372 1373 //close action for edit panel for each single item 1374 $('.cbxbookmark-category-list').on('click', '.cbxbookmark-cat-close', function (e) { 1375 e.preventDefault(); 1376 1377 $(this).closest('.cbxbookmark-mycat-editbox').css('display', 'none'); 1378 }); 1379 1380 /** 1381 * Delete a bookmark in list mode 1382 */ 1383 $('.cbxwpbookmark-mylist').on('click', '.cbxbookmark-post-delete', function (event) { 1384 event.preventDefault(); 1385 1386 var $postdelete = $(this); 1387 var $wrapper = $postdelete.closest('div.cbxwpbookmark-mylist-wrap'); 1388 1389 var $object_id = $postdelete.data('object_id'); 1390 var $bookmark_id = $postdelete.data('bookmark_id'); 1391 var $busy = parseInt($postdelete.data('busy')); 1392 1393 var data = { 1394 'action': 'cbx_delete_bookmark_post', 1395 'security': cbxwpbookmark.nonce, 1396 'object_id': $object_id, 1397 'bookmark_id': $bookmark_id 1398 //'cbxbookmark_lang': cbxwpbookmark.cbxbookmark_lang 1399 }; 1400 // We can also pass the url value separately from ajaxurl for front end AJAX implementations 1401 1402 if ($busy === 0) { 1403 var notifier = new AWN(awn_options); 1404 1405 var onCancel = () => { 1406 1407 }; 1408 1409 var onOk = () => { 1410 1411 //$wrapper.find('.cbxbookmark-alert').remove(); 1412 $postdelete.data('busy', 1); 1413 //$postdelete.addClass('cbxbookmark-delete-btn-busy'); 1414 $postdelete.addClass('running'); 1415 1416 $.post(ajaxurl, data, function (response) { 1417 response = $.parseJSON(response); 1418 1419 if (response.msg === 0) { 1420 // Remove the li tag if the bookmark is deleted 1421 $postdelete.closest('li').remove(); 1422 1423 new AWN(awn_options).success(cbxwpbookmark.bookmark_removed); 1424 1425 if ($wrapper.find('ul.cbxwpbookmark-mylist li').length === 0) { 1426 $wrapper.find('ul.cbxwpbookmark-mylist').append('<li class="cbxwpbookmark-mylist-item cbxwpbookmark-mylist-item-notfound">' + cbxwpbookmark.bookmark_removed_empty + '</li>'); 1427 } 1428 } else if (response.msg === 1) { 1429 new AWN(awn_options).warning(cbxwpbookmark.bookmark_removed_failed); 1430 1431 //$this.removeClass('cbxbookmark-delete-btn-busy'); 1432 $this.removeClass('running'); 1433 } 1434 }); 1435 }; 1436 1437 notifier.confirm( 1438 cbxwpbookmark.are_you_sure_delete_desc, 1439 onOk, 1440 onCancel, 1441 { 1442 labels: { 1443 confirm: cbxwpbookmark.are_you_sure_global 1444 } 1445 } 1446 ); 1447 } 1448 1449 1450 }); 1451 1452 //implementing the bookmark load more feature 1453 $('.cbxwpbookmark-mylist-wrap').on('click', '.cbxbookmark-more', function (e) { 1454 e.preventDefault(); 1455 var _this = $(this); 1456 var $busy = Number(_this.data('busy')); 1457 if ($busy === 1) return; 1458 1459 var $wrapper = _this.closest('div.cbxwpbookmark-mylist-wrap'); 1460 1461 //$wrapper.find('.cbxwpbm_ajax_icon').show(); 1462 1463 var limit = _this.data('limit'); 1464 var offset = _this.data('offset'); 1465 var catid = _this.data('catid'); 1466 var type = _this.data('type'); 1467 1468 var order = _this.data('order'); 1469 var orderby = _this.data('orderby'); 1470 var userid = _this.data('userid'); 1471 1472 var totalpage = _this.data('totalpage'); 1473 var currpage = _this.data('currpage'); 1474 var allowdelete = _this.data('allowdelete'); 1475 1476 if (currpage + 1 >= totalpage) { 1477 _this.hide(); 1478 } else { 1479 _this.show(); 1480 } 1481 1482 var addcat = { 1483 'action': 'cbx_bookmark_loadmore', 1484 'security': cbxwpbookmark.nonce, 1485 'limit': limit, 1486 'offset': offset, 1487 'catid': catid, 1488 'type': type, 1489 'order': order, 1490 'orderby': orderby, 1491 'userid': userid, 1492 'allowdelete': allowdelete, 1493 //'cbxbookmark_lang': cbxwpbookmark.cbxbookmark_lang 1494 }; 1495 1496 _this.data('busy', 1); 1497 _this.addClass('running'); 1498 1499 $.post(ajaxurl, addcat, function (response) { 1500 response = $.parseJSON(response); 1501 1502 if (response.code) { 1503 _this.data('offset', limit + offset); 1504 _this.data('currpage', currpage + 1); 1505 1506 $wrapper.find('ul.cbxwpbookmark-mylist').append(response.data); 1507 //$wrapper.find('.cbxwpbm_ajax_icon').hide(); 1508 1509 } else { 1510 //var $error_html = $('<div class="cbxbookmark-alert cbxbookmark-alert-error">' + cbxwpbookmark.error_msg + response.code + '</div>'); 1511 //$wrapper.find('ul.cbxwpbookmark-mylist').append($error_html); 1512 1513 new AWN(awn_options).warning(cbxwpbookmark.error_msg + response.code); 1514 } 1515 1516 _this.data('busy', 0); 1517 _this.removeClass('running'); 1518 }); 1519 1520 }); 1521 1522 //bookmarks list items as sublist 1523 $('.cbxbookmark-category-list-item-expand').on('click', '.cbxlbjs-item-widget', function (e) { 1524 e.preventDefault(); 1525 1526 var $this = $(this); 1527 var $parent = $this.closest('.cbxbookmark-category-list-item-expand'); 1528 var $cat_id = Number($parent.data('id')); 1529 var $cat_total = Number($parent.data('total')); 1530 var $processed = Number($parent.data('processed')); 1531 var $privacy = Number($parent.data('privacy')); 1532 var $userid = Number($parent.data('userid')); 1533 var $totalpage = Number($parent.data('totalpage')); 1534 var $page = Number($parent.data('page')); 1535 1536 if ($totalpage > 0) { 1537 if ($processed === 0) { 1538 $this.data('busy', 1); 1539 $this.next('ul').remove(); 1540 1541 var data = { 1542 'action': 'cbx_load_bookmarks_sublist', 1543 'security': cbxwpbookmark.nonce, 1544 'cat_id': $cat_id, 1545 'cat_total': $cat_total, 1546 'privacy': $privacy, 1547 'userid': $userid, 1548 'totalpage': $totalpage, 1549 'page': $page, 1550 //'cbxbookmark_lang': cbxwpbookmark.cbxbookmark_lang 1551 }; 1552 1553 $.post(ajaxurl, data, function (response) { 1554 $this.data('busy', 0); 1555 response = $.parseJSON(response); 1556 1557 if (Number(response.code)) { 1558 $parent.data('processed', 1); 1559 var output = $.parseJSON(response.output); 1560 var show_more = Number(response.show_more); 1561 1562 if (show_more) { 1563 $page++; 1564 } 1565 1566 var show_more_html = (show_more) ? '<a data-busy="0" href="#" data-page="' + $page + '" data-totalpage="' + $totalpage + '" data-userid="' + $userid + '" data-privacy="' + $privacy + '" data-cat_total="' + $cat_total + '" data-cat_id="' + $cat_id + '" class="cbxbookmark-category-list-item-sublist-a-more">' + cbxwpbookmark.load_more + '</a>' : ''; 1567 1568 if ($this.next('ul').length === 0) { 1569 $parent.append('<ul class="cbxbookmark-category-list-item-sublist">' + output + '</ul>' + show_more_html); 1570 } else { 1571 $this.next('ul').append(output); 1572 } 1573 } else { 1574 $parent.data('processed', 1); 1575 } 1576 }); 1577 } 1578 } else { 1579 if ($processed === 0) { 1580 $parent.data('processed', 1); 1581 $parent.append('<ul class="cbxbookmark-category-list-item-sublist cbxbookmark-category-list-item-sublist-notfound"><li>' + cbxwpbookmark.bookmark_not_found + '</li></ul>'); 1582 } 1583 } 1584 }); 1585 1586 //implementing the bookmark load more feature for category sub list 1587 $(document.body).on('click', '.cbxbookmark-category-list-item-sublist-a-more', function (e) { 1588 e.preventDefault(); 1589 1590 var $this = $(this); 1591 1592 1593 var $cat_id = Number($this.data('cat_id')); 1594 var $cat_total = Number($this.data('cat_total')); 1595 var $privacy = Number($this.data('privacy')); 1596 var $userid = Number($this.data('userid')); 1597 var $totalpage = Number($this.data('totalpage')); 1598 var $page = Number($this.data('page')); //current page 1599 var $busy = Number($this.data('busy')); 1600 var $parent = $this.prev('.cbxbookmark-category-list-item-sublist'); 1601 1602 if ($busy === 0) { 1603 $this.data('busy', 1); 1604 if ($page === $totalpage) { 1605 $this.remove(); 1606 } 1607 1608 var data = { 1609 'action': 'cbx_load_bookmarks_sublist', 1610 'security': cbxwpbookmark.nonce, 1611 'cat_id': $cat_id, 1612 'cat_total': $cat_total, 1613 'privacy': $privacy, 1614 'userid': $userid, 1615 'totalpage': $totalpage, 1616 'page': $page, 1617 //'cbxbookmark_lang': cbxwpbookmark.cbxbookmark_lang 1618 }; 1619 1620 $.post(ajaxurl, data, function (response) { 1621 1622 response = $.parseJSON(response); 1623 1624 if (Number(response.code)) { 1625 $parent.data('processed', 1); 1626 var output = $.parseJSON(response.output); 1627 var show_more = Number(response.show_more); 1628 1629 if (show_more) { 1630 $page++; 1631 $this.data('page', $page); 1632 1633 $this.data('busy', 0); 1634 } 1635 1636 $parent.append(output); 1637 } 1638 });//end ajax 1639 }//end busy 1640 }); 1641 1642 1643 $('#cbxbookmark-category-list-create-wrap').on('click', '.cbxbookmark-category-list-create', function (e) { 1644 e.preventDefault(); 1645 1646 var $this = $(this); 1647 var $parent = $this.closest('#cbxbookmark-category-list-create-wrap'); 1648 var $form = $parent.find('.cbxbookmark-category-list-create-form'); 1649
1650 $form.toggle(); 1651 }); 1652 1653 //on click new category button 1654 $('#cbxbookmark-category-list-create-wrap').on('click', '.cbxbookmark-cat-close', function (event) { 1655 event.preventDefault(); 1656 1657 var $this = $(this); 1658 var $parent = $this.closest('#cbxbookmark-category-list-create-wrap'); 1659 var $cat_add_form = $parent.find('.cbxbookmark-category-list-create-form'); 1660 $cat_add_form.toggle(); 1661 }); 1662 1663 //on click new category button from category list 1664 $('#cbxbookmark-category-list-create-wrap').on('click', '.cbxbookmark-cat-save', function (event) { 1665 event.preventDefault(); 1666 1667 var $this = $(this); 1668 var $busy = Number($this.data('busy')); 1669 if ($busy == 1) return; 1670 1671 1672 var $parent = $this.closest('#cbxbookmark-category-list-create-wrap'); 1673 var $cat_add_form = $parent.find('.cbxbookmark-category-list-create-form'); 1674 var $category_list = $parent.next('.cbxbookmark-category-list'); 1675 1676 var $cat_field = $cat_add_form.find('.cbxbmedit-catname'); 1677 var $privacy_field = $cat_add_form.find('.cbxbmedit-privacy'); 1678 //var $catid_field = $cat_add_form.find('.cbxwpbkmark-field-catid'); 1679 1680 var $cat_name = $cat_field.val(); 1681 var $privacy = Number($privacy_field.val()); 1682 1683 if ($cat_name !== '') { 1684 $cat_field.removeClass('cbxbmedit-catname-error'); 1685 1686 var data = { 1687 'action': 'cbx_add_bookmark_category_std', 1688 'security': cbxwpbookmark.nonce, 1689 'cat_name': $cat_name, 1690 'privacy': $privacy 1691 //'cbxbookmark_lang': cbxwpbookmark.cbxbookmark_lang 1692 }; 1693 1694 $this.data('busy', 1); 1695 $this.addClass('running'); 1696 1697 $.post(ajaxurl, data, function (response) { 1698 response = $.parseJSON(response); 1699 1700 $this.data('busy', 0); 1701 $this.removeClass('running'); 1702 1703 if (response.code === 1) { 1704 $cat_field.val(''); 1705 $cat_field.removeClass('cbxbmedit-catname-error'); 1706 1707 $category_list.prepend(response.list_html); 1708 new AWN(awn_options).success(response.msg); 1709 1710 1711 $category_list.find('.cbxbookmark-category-list-item-notfound').remove(); 1712 1713 } else { 1714 $cat_field.addClass('cbxbmedit-catname-error'); 1715 new AWN(awn_options).warning(response.msg); 1716 } 1717 1718 }); 1719 1720 1721 } else { 1722 $cat_field.addClass('cbxbmedit-catname-error'); 1723 } 1724 }); 1725 1726 //delete all bookmarks of a user by user 1727 $('.cbxwpbookmark_deleteall').on('click', function (e) { 1728 e.preventDefault(); 1729 1730 var $this = $(this); 1731 var $parent = $this.closest('.cbxwpbookmark-title'); 1732 var $busy = Number($this.data('busy')); 1733 1734 1735 if ($busy === 1) return; 1736 1737 1738 var notifier = new AWN(awn_options); 1739 1740 var onCancel = () => { 1741 1742 }; 1743 1744 var onOk = () => { 1745 1746 $this.data('busy', 1); 1747 $this.prop('disabled', true); 1748 $this.addClass('running'); 1749 1750 var data = { 1751 'action': 'cbxwpbkmark_delete_all_bookmarks_by_user', 1752 'security': cbxwpbookmark.nonce, 1753 //'cbxbookmark_lang': cbxwpbookmark.cbxbookmark_lang 1754 }; 1755 1756 $.post(ajaxurl, data, function (response) { 1757 $this.data('busy', 0); 1758 $this.prop('disabled', false); 1759 $this.removeClass('running'); 1760 1761 if (response && response.code === 1) { 1762 new AWN(awn_options).success(response.msg); 1763 1764 $parent.next('.cbxwpbookmark-list-generic').remove(); 1765 $parent.next('.cbxbookmark_cards_wrapper_postgrid').remove(); 1766 } else { 1767 $this.data('busy', 0); 1768 $this.prop('disabled', false); 1769 $this.removeClass('cbxwpbookmark_deleteall_busy'); 1770 } 1771 } 1772 ); 1773 }; 1774 1775 notifier.confirm( 1776 cbxwpbookmark.are_you_sure_delete_desc, 1777 onOk, 1778 onCancel, 1779 { 1780 labels: { 1781 confirm: cbxwpbookmark.are_you_sure_global 1782 } 1783 } 1784 ); 1785 1786 1787 }); 1788 1789 $('.cbxwpbookmark_share').on('click', function (e) { 1790 e.preventDefault(); 1791 1792 var $this = $(this); 1793 1794 var $share_url = $this.attr('href'); 1795 var shareurl_html = cbxwpbookmark.shareurl_html; 1796 shareurl_html = shareurl_html.replace(/##share_url##/g, $share_url); 1797 shareurl_html = shareurl_html.replace(/##share_url##/g, $share_url); 1798 1799 new AWN().modal( 1800 shareurl_html, 1801 'awn-popup-body-cbxbookmark-shareurl', 1802 awn_options 1803 ) 1804 }); 1805 1806 var cbxbookmark_sharecopy_timeoutId; 1807 1808 $(document.body).on('click', '.shareurl_copy_btn', function (e) { 1809 e.preventDefault(); 1810 1811 var $this = $(this); 1812 var $url = $this.data('url'); 1813 $this.prop('disabled', true); 1814
1815 cbxwpbookmark_copyStringToClipboard($url); 1816 $this.text(cbxwpbookmark.shareurl_trans.copied); 1817 1818 clearTimeout(cbxbookmark_sharecopy_timeoutId); 1819 cbxbookmark_sharecopy_timeoutId = setTimeout(function () { 1820 $this.text(cbxwpbookmark.shareurl_trans.copy); 1821 $this.prop('disabled', false); 1822 }, 1000); 1823 }); 1824 });//end dom ready 1825})(jQuery);
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.