PluginProbe ʕ •ᴥ•ʔ
Folders – Unlimited Folders to Organize Media Library Folder, Pages, Posts, File Manager / 2.1.1
Folders – Unlimited Folders to Organize Media Library Folder, Pages, Posts, File Manager v2.1.1
3.1.9 3.1.8 3.1.7 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 2.9.8 3.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 trunk 1.3.7 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.2 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.2.7 2.2.8 2.2.9 2.3 2.3.1 2.3.2 2.3.3 2.3.4 2.3.5 2.3.6 2.3.7 2.3.8 2.3.9 2.4 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.4.8 2.4.9 2.5 2.5.1 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6 2.6.1 2.6.2 2.6.3 2.6.4 2.6.5 2.6.6 2.6.7 2.6.8 2.6.9 2.7 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8 2.8.1 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.8 2.8.9 2.9 2.9.1 2.9.2
folders / assets / js / custom.js
folders / assets / js Last commit date
custom.js 7 years ago media.js 7 years ago sweetalert.all.min.js 7 years ago
custom.js
1038 lines
1 var defaultFolderHtml;
2 var folderID = 0;
3 var fileAddUpdateStatus = "add";
4 var fileFolderID = 0;
5 var folderNameDynamic = '';
6 var totalFolders = -1;
7 var isKeyActive = 0;
8 var folderLimitation = 10;
9
10 var listFolderString = "<li class='grid-view' data-id='__folder_id__' id='folder___folder_id__'>" +
11 "<div class='folder-item is-folder' data-id='__folder_id__'>" +
12 "<a title='__folder_name__' id='folder_view___folder_id__'" +
13 "class='folder-view __append_class__'" +
14 "data-id='__folder_id__'>" +
15 "<span class='folder item-name'><span id='wcp_folder_text___folder_id__'" +
16 "class='folder-title'>__folder_name__</span></span>" +
17 "</a>" +
18 "</div>" +
19 "</li>";
20
21 function addFolder() {
22 if(isKeyActive == 0 && totalFolders >= folderLimitation) {
23 Swal.fire({
24 title: "You've reached the "+totalFolders+" folder limitation!",
25 text: "Unlock unlimited amount of folders by upgrading to one of our pro plans.",
26 type: 'warning',
27 showCancelButton: true,
28 confirmButtonColor: '#3085d6',
29 cancelButtonColor: '#d33',
30 confirmButtonText: 'See Pro Plans'
31 }).then((result) => {
32 if (result.value) {
33 window.location = wcp_settings.register_url;
34 }
35 });
36 return false;
37 }
38 folderOrder = jQuery("#space_"+fileFolderID+" > li").length+1;
39 ajaxURL = wcp_settings.ajax_url+"?parent_id=" + fileFolderID + "&type=" + wcp_settings.post_type + "&action=wcp_add_new_folder&nonce=" + wcp_settings.nonce + "&term_id=" + fileFolderID + "&order=" + folderOrder+"&name=";
40 Swal({
41 title: 'Add Folder',
42 input: 'text',
43 inputAttributes: {
44 autocapitalize: 'off',
45 placeholder: "Folder name"
46 },
47 showCancelButton: true,
48 confirmButtonText: 'Submit',
49 showLoaderOnConfirm: true,
50 reverseButtons: true,
51 preConfirm: (folderName) => {
52 if(folderName == "") {
53 swal.showValidationError(
54 'Please enter folder name'
55 )
56 return false;
57 }
58 return fetch(ajaxURL+folderName)
59 .then(response => {
60 if (!response.ok) {
61 throw new Error(response.statusText);
62 }
63 return response.json();
64 }).catch(error => {
65 Swal.showValidationMessage(
66 "Request failed: "+error
67 )
68 });
69 },
70 allowOutsideClick: () => !Swal.isLoading()
71 }).then((result) => {
72 if(result.value.error == 1) {
73 Swal({
74 type: 'error',
75 title: 'Oops...',
76 text: result.value.message
77 });
78 } else if(result.value.status == 1) {
79 jQuery("#space_"+result.value.parent_id).append(result.value.term_data);
80 jQuery("#wcp_folder_"+result.value.parent_id).addClass("active has-sub-tree");
81 isKeyActive = parseInt(result.value.is_key_active);
82 totalFolders = parseInt(result.value.folders);
83 jQuery("#current-folder").text(totalFolders);
84 if(totalFolders > folderLimitation) {
85 folderLimitation = totalFolders;
86 }
87 jQuery("#total-folder").text(folderLimitation);
88 checkForExpandCollapse();
89 add_menu_to_list();
90 }
91 });
92 }
93
94
95 function updateFolder() {
96 folderName = jQuery.trim(jQuery("#wcp_folder_"+fileFolderID+" > h3").text());
97 parentID = jQuery("#wcp_folder_"+fileFolderID).closest("li.route").data("folder-id");
98 if(parentID == undefined) {
99 parentID = 0;
100 }
101 nonce = jQuery.trim(jQuery("#wcp_folder_"+fileFolderID).data("rename"));
102 ajaxURL = wcp_settings.ajax_url+"?parent_id=" + parentID + "&nonce=" + nonce + "&type=" + wcp_settings.post_type + "&action=wcp_update_folder&term_id=" + fileFolderID + "&name=";
103 Swal({
104 title: 'Update Folder',
105 input: 'text',
106 inputValue: folderName,
107 inputAttributes: {
108 autocapitalize: 'off',
109 placeholder: "Folder name",
110 value: folderName
111 },
112 showCancelButton: true,
113 confirmButtonText: 'Submit',
114 showLoaderOnConfirm: true,
115 reverseButtons: true,
116 preConfirm: (folderName) => {
117 if(folderName == "") {
118 swal.showValidationError(
119 'Please enter folder name'
120 )
121 return false;
122 }
123 return fetch(ajaxURL+folderName)
124 .then(response => {
125 if (!response.ok) {
126 throw new Error(response.statusText);
127 }
128 return response.json();
129 }).catch(error => {
130 Swal.showValidationMessage(
131 "Request failed: "+error
132 )
133 });
134 },
135 allowOutsideClick: () => !Swal.isLoading()
136 }).then((result) => {
137 if(result.value.error == 1) {
138 Swal({
139 type: 'error',
140 title: 'Oops...',
141 text: result.value.message
142 });
143 } else if(result.value.status == 1) {
144 jQuery("#wcp_folder_"+result.value.id+" > h3 > .title-text").text(result.value.term_title);
145 jQuery("#wcp_folder_"+result.value.id+" > h3").attr("title",result.value.term_title);
146 add_menu_to_list();
147 }
148 });
149 }
150
151 function add_menu_to_list() {
152 folderId = 0;
153 if(jQuery(".active-term").length) {
154 folderId = jQuery(".active-term").data("folder-id");
155 }
156 jQuery(".tree-structure ul").html("");
157 jQuery("#space_"+folderId).children().each(function(){
158 fID = jQuery(this).data("folder-id");
159 fName = jQuery(this).find("h3.title:first .title-text").text()
160 liHtml = listFolderString.replace(/__folder_id__/g,fID);
161 liHtml = liHtml.replace(/__folder_name__/g,fName);
162 selectedClass = jQuery(this).hasClass("is-high")?"is-high":"";
163 liHtml = liHtml.replace(/__append_class__/g,selectedClass);
164 jQuery(".tree-structure ul").append(liHtml);
165 });
166 }
167
168 jQuery(document).ready(function(){
169
170 if(wcp_settings.can_manage_folder == "0") {
171 jQuery(".wcp-custom-form a:not(.pink)").addClass("button-disabled");
172 }
173
174 isKeyActive = parseInt(wcp_settings.is_key_active);
175 totalFolders = parseInt(wcp_settings.folders);
176
177 if(wcp_settings.post_type == "attachment") {
178 jQuery(".wp-header-end").before('<div class="tree-structure"><ul></ul><div class="clear clearfix"></div></div>');
179
180 add_menu_to_list();
181 }
182
183 calcWidth(jQuery('#title_0'));
184
185 jQuery("#cancel-button").click(function(){
186 jQuery(".wcp-form-data").hide();
187 });
188
189
190 jQuery(document).on("click", "h3.title", function(e) {
191 e.stopPropagation();
192 window.location = wcp_settings.page_url+jQuery(this).closest("li.route").data("slug");
193 });
194
195 jQuery(".tree-structure a").livequery(function(){
196 jQuery(this).click(function(){
197 fID = jQuery(this).data("id");
198 jQuery("#title_"+fID).trigger("click");
199 });
200 });
201
202 jQuery(".wcp-parent > span").click(function(){
203 window.location = wcp_settings.page_url
204 });
205 jQuery("h3.title").livequery(function () {
206 jQuery(this).droppable({
207 accept: ".wcp-move-file, .wcp-move-multiple, .attachments-browser li.attachment",
208 hoverClass: 'wcp-drop-hover',
209 classes: {
210 "ui-droppable-active": "ui-state-highlight"
211 },
212 drop: function (event, ui) {
213 folderID = jQuery(this).closest("li.route").data('folder-id');
214 if (ui.draggable.hasClass('wcp-move-multiple')) {
215 if (jQuery(".wp-list-table input:checked").length) {
216 chkStr = "";
217 jQuery(".wp-list-table input:checked").each(function () {
218 chkStr += jQuery(this).val() + ",";
219 });
220 nonce = jQuery.trim(jQuery("#wcp_folder_" + folderID).data("nonce"));
221 jQuery.ajax({
222 url: wcp_settings.ajax_url,
223 data: "post_ids=" + chkStr + "&type=" + wcp_settings.post_type + "&action=wcp_change_multiple_post_folder&folder_id=" + folderID + "&nonce=" + nonce,
224 method: 'post',
225 success: function (res) {
226 res = jQuery.parseJSON(res);
227 if (res.status == "1") {
228 window.location.reload();
229 } else {
230 Swal.fire(
231 '',
232 res.message,
233 'error'
234 );
235 }
236 }
237 });
238 }
239 } else if (ui.draggable.hasClass('wcp-move-file')) {
240 postID = ui.draggable[0].attributes['data-id'].nodeValue;
241 nonce = jQuery.trim(jQuery("#wcp_folder_" + folderID).data("nonce"));
242 jQuery.ajax({
243 url: wcp_settings.ajax_url,
244 data: "post_id=" + postID + "&type=" + wcp_settings.post_type + "&action=wcp_change_post_folder&folder_id=" + folderID + "&nonce=" + nonce,
245 method: 'post',
246 success: function (res) {
247 res = jQuery.parseJSON(res);
248 if (res.status == "1") {
249 window.location.reload();
250 } else {
251 Swal.fire(
252 '',
253 res.message,
254 'error'
255 );
256 }
257 }
258 });
259 } else if (ui.draggable.hasClass('attachment')) {
260 chkStr = ui.draggable[0].attributes['data-id'].nodeValue;
261 nonce = jQuery.trim(jQuery("#wcp_folder_" + folderID).data("nonce"));
262 if (jQuery(".attachments-browser li.attachment.selected").length > 1) {
263 chkStr = "";
264 jQuery(".attachments-browser li.attachment.selected").each(function () {
265 chkStr += jQuery(this).data("id") + ",";
266 });
267 }
268 jQuery.ajax({
269 url: wcp_settings.ajax_url,
270 data: "post_ids=" + chkStr + "&type=" + wcp_settings.post_type + "&action=wcp_change_multiple_post_folder&folder_id=" + folderID + "&nonce=" + nonce,
271 method: 'post',
272 success: function (res) {
273 window.location.reload();
274 }
275 });
276 }
277 }
278 });
279 });
280
281 jQuery(".attachments-browser li.attachment").livequery(function () {
282 jQuery(this).draggable({
283 revert: "invalid",
284 containment: "document",
285 helper: function (event, ui) {
286 jQuery(".selected-items").remove();
287 selectedItems = jQuery(".attachments-browser li.attachment.selected").length;
288 selectedItems = (selectedItems == 0 || selectedItems == 1) ? "1 Item" : selectedItems + " Items";
289 return jQuery("<div class='selected-items'><span class='total-post-count'>" + selectedItems + " Selected</span></div>");
290 },
291 start: function (event, ui) {
292
293 },
294 cursor: "move",
295 cursorAt: {
296 left: 0,
297 top: 0
298 },
299 stop: function (event, ui) {
300 jQuery(".selected-items").remove();
301 }
302 });
303 jQuery(this).draggable("disable");
304 });
305
306 jQuery(".media-button").livequery(function () {
307 jQuery(this).click(function () {
308 if (jQuery(".delete-selected-button").hasClass("hidden")) {
309 jQuery(".attachments-browser li.attachment").draggable("disable");
310 } else {
311 jQuery(".attachments-browser li.attachment").draggable("enable");
312 }
313 });
314 });
315
316 jQuery(".header-posts").click(function(){
317 window.location = wcp_settings.page_url;
318 });
319
320 //if(wcp_settings.can_manage_folder == "1") {
321 jQuery(".tree-structure .folder-item").livequery(function () {
322 jQuery(this).droppable({
323 accept: ".wcp-move-file, .wcp-move-multiple, .attachments-browser li.attachment",
324 hoverClass: 'wcp-drop-hover-list',
325 classes: {
326 "ui-droppable-active": "ui-state-highlight"
327 },
328 drop: function (event, ui) {
329 folderID = jQuery(this).data('id');
330 if (ui.draggable.hasClass('wcp-move-multiple')) {
331 nonce = jQuery.trim(jQuery("#wcp_folder_" + folderID).data("nonce"));
332 if (jQuery(".wp-list-table input:checked").length) {
333 chkStr = "";
334 jQuery(".wp-list-table input:checked").each(function () {
335 chkStr += jQuery(this).val() + ",";
336 });
337 jQuery.ajax({
338 url: wcp_settings.ajax_url,
339 data: "post_ids=" + chkStr + "&type=" + wcp_settings.post_type + "&action=wcp_change_multiple_post_folder&folder_id=" + folderID + "&nonce=" + nonce,
340 method: 'post',
341 success: function (res) {
342 window.location.reload();
343 }
344 });
345 }
346 } else if (ui.draggable.hasClass('wcp-move-file')) {
347 postID = ui.draggable[0].attributes['data-id'].nodeValue;
348 nonce = jQuery.trim(jQuery("#wcp_folder_" + folderID).data("nonce"));
349 jQuery.ajax({
350 url: wcp_settings.ajax_url,
351 data: "post_id=" + postID + "&type=" + wcp_settings.post_type + "&action=wcp_change_post_folder&folder_id=" + folderID + "&nonce=" + nonce,
352 method: 'post',
353 success: function (res) {
354 window.location.reload();
355 }
356 });
357 } else if (ui.draggable.hasClass('attachment')) {
358 chkStr = ui.draggable[0].attributes['data-id'].nodeValue;
359 nonce = jQuery.trim(jQuery("#wcp_folder_" + folderID).data("nonce"));
360 if (jQuery(".attachments-browser li.attachment.selected").length > 1) {
361 chkStr = "";
362 jQuery(".attachments-browser li.attachment.selected").each(function () {
363 chkStr += jQuery(this).data("id") + ",";
364 });
365 }
366 jQuery.ajax({
367 url: wcp_settings.ajax_url,
368 data: "post_ids=" + chkStr + "&type=" + wcp_settings.post_type + "&action=wcp_change_multiple_post_folder&folder_id=" + folderID + "&nonce=" + nonce,
369 method: 'post',
370 success: function (res) {
371 window.location.reload();
372 }
373 });
374 }
375 }
376 });
377 });
378 //}
379
380 jQuery("#expand-collapse-list").click(function(e){
381 e.stopPropagation();
382 statusType = 0;
383 if(jQuery(this).hasClass("all-open")) {
384 jQuery(this).removeClass("all-open");
385 jQuery(".has-sub-tree").removeClass("active");
386 statusType = 0;
387 } else {
388 jQuery(this).addClass("all-open");
389 statusType = 1;
390 jQuery(".has-sub-tree").addClass("active");
391 }
392 folderIDs = "";
393 jQuery(".has-sub-tree").each(function(){
394 folderIDs += jQuery(this).data("folder-id")+",";
395 });
396 if(folderIDs != "") {
397 jQuery(".form-loader-count").css("width","100%");
398 nonce = wcp_settings.nonce;
399 jQuery.ajax({
400 url: wcp_settings.ajax_url,
401 data: "type=" + wcp_settings.post_type + "&action=wcp_change_all_status&status=" + statusType + "&folders="+folderIDs+"&nonce="+nonce,
402 method: 'post',
403 success: function (res) {
404 jQuery(".form-loader-count").css("width","0");
405 add_menu_to_list();
406 res = jQuery.parseJSON(res);
407 if(res.status == "0") {
408 Swal.fire(
409 '',
410 res.message,
411 'error'
412 );
413 window.location.reload(true);
414 }
415 }
416 });
417 }
418 });
419
420 resizeDirection = (wcp_settings.isRTL == "1" || wcp_settings.isRTL == 1)?"w":"e";
421 jQuery(".wcp-content").resizable( {
422 resizeHeight: false,
423 handles: resizeDirection,
424 minWidth: 305,
425 maxWidth: 500,
426 resize: function( e, ui ) {
427 if(wcp_settings.isRTL == "1") {
428 jQuery("#wpcontent").css("padding-right", (ui.size.width + 20) + "px");
429 jQuery("#wpcontent").css("padding-left", "0px");
430 } else {
431 jQuery("#wpcontent").css("padding-left", (ui.size.width + 20) + "px");
432 }
433 newWidth = ui.size.width - 40;
434 cssString = "";
435 classString = "";
436 for(i=0; i<=15; i++) {
437 classString += " .space > .route >";
438 currentWidth = newWidth - (13+(20*i));
439 cssString += "#custom-menu > "+classString+" .title { width: "+currentWidth+"px !important; } ";
440 setStickyHeaderForMedia();
441 }
442 jQuery("#wcp-custom-style").html("<style>"+cssString+"</style>");
443 },
444 stop: function( e, ui ) {
445 nonce = wcp_settings.nonce;
446 jQuery.ajax({
447 url: wcp_settings.ajax_url,
448 data: "type=" + wcp_settings.post_type + "&action=wcp_change_post_width&width=" + ui.size.width+"&nonce="+nonce,
449 method: 'post',
450 success: function (res) {
451 setStickyHeaderForMedia();
452 }
453 });
454 }
455 });
456
457 jQuery(".wcp-move-file").draggable({
458 /*cancel: "a.ui-icon",*/
459 revert: "invalid",
460 containment: "document",
461 helper: "clone",
462 cursor: "move",
463 start: function( event, ui){
464 jQuery(this).closest("td").addClass("wcp-draggable");
465 },
466 stop: function( event, ui ) {
467 jQuery(this).closest("td").removeClass("wcp-draggable");
468 }
469 });
470
471 jQuery(".wcp-move-multiple").draggable({
472 /*cancel: "a.ui-icon",*/
473 revert: "invalid",
474 containment: "document",
475 helper: "clone",
476 cursor: "move"
477 });
478
479 jQuery("h3.title").livequery(function(){
480 jQuery(this).on("contextmenu",function(e) {
481 e.preventDefault();
482 if(wcp_settings.can_manage_folder == 0) {
483 return;
484 }
485 isHigh = jQuery(this).closest("li.route").hasClass("is-high");
486 jQuery(".dynamic-menu").remove();
487 jQuery(".active-menu").removeClass("active-menu");
488 menuHtml = "<div class='dynamic-menu'><ul>" +
489 "<li class='new-folder'><a href='javascript:;'><span class='folder-icon-create_new_folder'></span> New Folder</a></li>" +
490 "<li class='rename-folder'><a href='javascript:;'><span class='folder-icon-border_color'><span class='path1'></span><span class='path2'></span></span> Rename</a></li>" +
491 "<li class='mark-folder'><a href='javascript:;'><span class='folder-icon-star_rate'></span>" + ((isHigh) ? " Remove Star" : "Add a Star") + "</a></li>" +
492 "<li class='remove-folder'><a href='javascript:;'><span class='folder-icon-delete'></span> Delete</a></li>" +
493 "</ul></div>";
494 jQuery(this).after(menuHtml);
495 jQuery(this).parents("li.route").addClass("active-menu");
496 return false;
497 });
498 });
499
500 jQuery("body").click(function(){
501 jQuery(".dynamic-menu").remove();
502 jQuery(".active-menu").removeClass("active-menu");
503 });
504
505 jQuery(".dynamic-menu").livequery(function(){
506 jQuery(this).click(function(e){
507 e.stopPropagation();
508 });
509 });
510
511 jQuery(".rename-folder").livequery(function(){
512 jQuery(this).click(function(e){
513 e.stopPropagation();
514 fileFolderID = jQuery(this).closest("li.route").data("folder-id");
515 updateFolder();
516 add_menu_to_list();
517 });
518 });
519
520 jQuery(".mark-folder").livequery(function(){
521 jQuery(this).click(function(e){
522 e.stopPropagation();
523 folderID = jQuery(this).closest("li.route").data("folder-id");
524 nonce = jQuery.trim(jQuery("#wcp_folder_"+folderID).data("star"));
525 jQuery(".form-loader-count").css("width","100%");
526 jQuery(".dynamic-menu").remove();
527 jQuery(".active-menu").removeClass("active-menu");
528 jQuery.ajax({
529 url: wcp_settings.ajax_url,
530 data: "term_id=" + folderID + "&type=" + wcp_settings.post_type + "&action=wcp_mark_un_mark_folder&nonce="+nonce,
531 method: 'post',
532 cache: false,
533 success: function (res) {
534 res = jQuery.parseJSON(res);
535 jQuery(".form-loader-count").css("width","0%");
536 if (res.status == '1') {
537 if(res.marked == '1') {
538 jQuery("#wcp_folder_"+res.id).addClass("is-high");
539 } else {
540 jQuery("#wcp_folder_"+res.id).removeClass("is-high");
541 }
542 add_menu_to_list();
543 } else {
544 Swal.fire(
545 '',
546 res.message,
547 'error'
548 );
549 }
550 }
551 });
552 });
553 });
554
555 /* Add new folder */
556 jQuery(".new-folder").livequery(function(){
557 jQuery(this).click(function(e) {
558 e.stopPropagation();
559 jQuery(".active-menu").removeClass("active-menu");
560 fileFolderID = jQuery(this).closest("li.route").data("folder-id");
561 jQuery(".dynamic-menu").remove();
562 jQuery(".active-menu").removeClass("active-menu");
563 addFolder();
564 add_menu_to_list();
565 });
566 });
567
568 jQuery(".cancel-button").livequery(function(){
569 jQuery(this).click(function(e){
570 e.stopPropagation();
571 jQuery(".form-li").remove();
572 });
573 });
574
575
576
577 jQuery("#add-new-folder").livequery(function(){
578 jQuery(this).click(function() {
579 if(jQuery("#custom-menu li.active-item").length) {
580 fileFolderID = jQuery("#custom-menu li.active-item").data("folder-id");
581 } else {
582 fileFolderID = 0;
583 }
584 addFolder();
585 add_menu_to_list();
586 });
587 });
588
589 jQuery("#inline-update").click(function(){
590 if(jQuery("#custom-menu li.active-item").length) {
591 fileFolderID = jQuery("#custom-menu li.active-item").data("folder-id");
592 updateFolder();
593 add_menu_to_list();
594 }
595 });
596
597 jQuery("#inline-remove").click(function(){
598 if(jQuery("#custom-menu li.active-item").length) {
599 fileFolderID = jQuery("#custom-menu li.active-item").data("folder-id");
600 jQuery(".dynamic-menu").remove();
601 jQuery(".active-menu").removeClass("active-menu");
602 nonce = jQuery.trim(jQuery("#wcp_folder_"+fileFolderID).data("delete"));
603 Swal.fire({
604 url: wcp_settings.ajax_url,
605 title: 'Are you sure you want to delete the selected folder?',
606 text: 'Items in the folder will not be deleted.',
607 type: 'warning',
608 showCancelButton: true,
609 confirmButtonText: 'Yes, delete it!',
610 cancelButtonText: 'No, keep it',
611 }).then((result) => {
612 if (result.value) {
613 Swal({
614 title: 'Please wait..',
615 imageUrl: wcp_settings.ajax_image,
616 imageAlt: 'The uploaded picture',
617 showConfirmButton: false
618 });
619 jQuery.ajax({
620 url: wcp_settings.ajax_url,
621 data: "type=" + wcp_settings.post_type + "&action=wcp_remove_folder&term_id=" + fileFolderID+"&nonce="+nonce,
622 method: 'post',
623 success: function (res) {
624 res = jQuery.parseJSON(res);
625 if (res.status == '1') {
626 Swal.fire(
627 'Deleted!',
628 'Your folder has been deleted.',
629 'success'
630 );
631 jQuery("#wcp_folder_"+fileFolderID).remove();
632 jQuery("#folder_"+fileFolderID).remove();
633 isKeyActive = parseInt(res.is_key_active);
634 totalFolders = parseInt(res.folders);
635 jQuery("#current-folder").text(totalFolders);
636 if(totalFolders > folderLimitation) {
637 folderLimitation = totalFolders;
638 }
639 jQuery("#total-folder").text(folderLimitation);
640 add_menu_to_list();
641 } else {
642 Swal.fire(
643 '',
644 res.message,
645 'error'
646 );
647 }
648 }
649 });
650 }
651 });
652 }
653 });
654
655 if(wcp_settings.can_manage_folder == "1") {
656 jQuery('.space').livequery(function () {
657 jQuery(this).sortable({
658 placeholder: "ui-state-highlight",
659 connectWith: '.space',
660 tolerance: 'intersect',
661 over: function (event, ui) {
662
663 },
664 update: function (event, ui) {
665 thisId = ui.item.context.attributes['data-folder-id'].nodeValue;
666 orderString = "";
667 jQuery(this).children().each(function () {
668 if (jQuery(this).hasClass("route")) {
669 orderString += jQuery(this).data("folder-id") + ",";
670 }
671 });
672 if (orderString != "") {
673 jQuery(".form-loader-count").css("width", "100%");
674 jQuery.ajax({
675 url: wcp_settings.ajax_url,
676 data: "term_ids=" + orderString + "&action=wcp_save_folder_order&type=" + wcp_settings.post_type + "&nonce=" + wcp_settings.nonce,
677 method: 'post',
678 success: function (res) {
679 res = jQuery.parseJSON(res);
680 if (res.status == '1') {
681 jQuery("#wcp_folder_parent").html(res.options);
682 jQuery(".form-loader-count").css("width", "0");
683 add_menu_to_list();
684 } else {
685 Swal.fire(
686 '',
687 res.message,
688 'error'
689 );
690 window.location.reload(true);
691 }
692 }
693 });
694 }
695 },
696 receive: function (event, ui) {
697 calcWidth(jQuery(this).siblings('.title'));
698 check_for_sub_menu();
699 jQuery(this).closest("li.route").addClass("active");
700 jQuery(this).closest("li.route").find("ul.ui-sortable:first-child > li").slideDown();
701 parentId = jQuery(this).closest("li.route").data("folder-id");
702 thisId = ui.item.context.attributes['data-folder-id'].nodeValue;
703 if (parentId == undefined) {
704 parentId = 0;
705 }
706 orderString = "";
707 if (jQuery("#wcp_folder_" + parentId + " .ui-sortable li").length) {
708 jQuery("#wcp_folder_" + parentId + " .ui-sortable li").each(function () {
709 orderString += jQuery(this).data("folder-id") + ",";
710 });
711 } else if (parentId == 0) {
712 jQuery("#custom-menu > ul.space > li").each(function () {
713 orderString += jQuery(this).data("folder-id") + ",";
714 });
715 }
716 jQuery(".form-loader-count").css("width", "100%");
717 nonce = jQuery.trim(jQuery("#wcp_folder_" + thisId).data("nonce"));
718 jQuery.ajax({
719 url: wcp_settings.ajax_url,
720 data: "term_id=" + thisId + "&action=wcp_update_parent_information&parent_id=" + parentId + "&type=" + wcp_settings.post_type + "&nonce=" + nonce,
721 method: 'post',
722 success: function (res) {
723 jQuery(".form-loader-count").css("width", "0%");
724 res = jQuery.parseJSON(res);
725 if (res.status == 0) {
726 Swal.fire(
727 '',
728 res.message,
729 'error'
730 );
731 } else {
732 add_menu_to_list();
733 }
734 }
735 });
736 }
737 });
738 jQuery(this).disableSelection();
739 });
740 }
741 jQuery(".update-inline-record").livequery(function(){
742 jQuery(this).click(function(e){
743 e.stopPropagation();
744 isHigh = jQuery(this).closest("li.route").hasClass("is-high");
745 jQuery(".dynamic-menu").remove();
746 jQuery(".active-menu").removeClass("active-menu");
747 menuHtml = "<div class='dynamic-menu'><ul>" +
748 "<li class='new-folder'><a href='javascript:;'><span class='folder-icon-create_new_folder'></span> New Folder</a></li>" +
749 "<li class='rename-folder'><a href='javascript:;'><span class='folder-icon-border_color'><span class='path1'></span><span class='path2'></span></span> Rename</a></li>" +
750 "<li class='mark-folder'><a href='javascript:;'><span class='folder-icon-star_rate'></span>" + ((isHigh) ? " Remove Star" : "Add a Star") + "</a></li>" +
751 "<li class='remove-folder'><a href='javascript:;'><span class='folder-icon-delete'></span> Delete</a></li>" +
752 "</ul></div>";
753 jQuery(this).closest("h3.title").after(menuHtml);
754 jQuery(this).parents("li.route").addClass("active-menu");
755 });
756 });
757 //check_for_sub_menu();
758 //jQuery(".has-sub-tree:first").addClass("active");
759 jQuery(".nav-icon").livequery(function(){
760 jQuery(this).click(function(){
761 folderID = jQuery(this).closest("li.route").data("folder-id");
762 if(jQuery("#wcp_folder_"+folderID).hasClass("active")) {
763 folderStatus = 0;
764 } else {
765 folderStatus = 1;
766 }
767 jQuery(".form-loader-count").css("width","100%");
768 nonce = jQuery.trim(jQuery("#wcp_folder_"+folderID).data("nonce"));
769 checkForExpandCollapse();
770 jQuery.ajax({
771 url: wcp_settings.ajax_url,
772 data: "is_active=" + folderStatus + "&action=save_wcp_folder_state&term_id=" + folderID+"&nonce="+nonce,
773 method: 'post',
774 success: function (res) {
775 jQuery(".form-loader-count").css("width","0");
776 res = jQuery.parseJSON(res);
777 if(res.status == "0") {
778 Swal.fire(
779 '',
780 res.message,
781 'error'
782 );
783 } else {
784 if(jQuery("#wcp_folder_"+folderID).hasClass("active")) {
785 jQuery("#wcp_folder_"+folderID).removeClass("active");
786 jQuery("#wcp_folder_"+folderID).find("ul.ui-sortable:first-child > li").slideUp();
787 folderStatus = 0;
788 } else {
789 jQuery("#wcp_folder_"+folderID).addClass("active");
790 jQuery("#wcp_folder_"+folderID).find("ul.ui-sortable:first-child > li").slideDown();
791 folderStatus = 1;
792 }
793 add_menu_to_list();
794 }
795 }
796 });
797 });
798 });
799 jQuery("#custom-menu .ui-icon, #custom-menu h3").livequery(function(){
800 jQuery(this).click(function(){
801 jQuery("#custom-menu .active-item").removeClass("active-item");
802 jQuery(this).closest(".route").addClass("active-item");
803 add_menu_to_list();
804 });
805 });
806 jQuery(".remove-folder").livequery(function(){
807 jQuery(this).click(function() {
808 folderID = jQuery(this).closest("li.route").data("folder-id");
809 fileFolderID = folderID;
810 jQuery(".dynamic-menu").remove();
811 jQuery(".active-menu").removeClass("active-menu");
812 nonce = jQuery.trim(jQuery("#wcp_folder_"+fileFolderID).data("delete"));
813 Swal.fire({
814 url: wcp_settings.ajax_url,
815 title: 'Are you sure you want to delete the selected folder?',
816 text: 'Items in the folder will not be deleted.',
817 type: 'warning',
818 showCancelButton: true,
819 confirmButtonText: 'Yes, delete it!',
820 cancelButtonText: 'No, keep it',
821 }).then((result) => {
822 if (result.value) {
823 Swal({
824 title: 'Please wait..',
825 imageUrl: wcp_settings.ajax_image,
826 imageAlt: 'The uploaded picture',
827 showConfirmButton: false
828 });
829 jQuery.ajax({
830 url: wcp_settings.ajax_url,
831 data: "type=" + wcp_settings.post_type + "&action=wcp_remove_folder&term_id=" + folderID+"&nonce="+nonce,
832 method: 'post',
833 success: function (res) {
834 res = jQuery.parseJSON(res);
835 if (res.status == '1') {
836 Swal.fire(
837 'Deleted!',
838 'Your folder has been deleted.',
839 'success'
840 );
841 jQuery("#wcp_folder_"+fileFolderID).remove();
842 jQuery("#folder_"+fileFolderID).remove();
843 isKeyActive = parseInt(res.is_key_active);
844 totalFolders = parseInt(res.folders);
845 jQuery("#current-folder").text(totalFolders);
846 if(totalFolders > folderLimitation) {
847 folderLimitation = totalFolders;
848 }
849 jQuery("#total-folder").text(folderLimitation);
850 add_menu_to_list();
851 } else {
852 Swal.fire(
853 '',
854 res.message,
855 'error'
856 );
857 }
858 }
859 });
860 }
861 });
862 });
863 });
864 jQuery(".wcp-parent .fa-caret-right").livequery(function(){
865 jQuery(this).click(function() {
866 autoStatus = 1;
867 if (jQuery(this).closest(".wcp-parent").hasClass("active")) {
868 jQuery(this).closest(".wcp-parent").removeClass("active");
869 jQuery("#custom-menu").removeClass("active");
870 autoStatus = 0;
871 } else {
872 jQuery(this).closest(".wcp-parent").addClass("active");
873 jQuery("#custom-menu").addClass("active");
874 }
875 jQuery(".form-loader-count").css("width","100%");
876 add_menu_to_list();
877 jQuery.ajax({
878 url: wcp_settings.ajax_url,
879 data: "type=" + wcp_settings.post_type + "&action=wcp_save_parent_data&is_active=" + autoStatus+"&nonce="+wcp_settings.nonce,
880 method: 'post',
881 success: function (res) {
882 jQuery(".form-loader-count").css("width","0%");
883 res = jQuery.parseJSON(res);
884 if (res.status == '1') {
885 Swal.fire(
886 '',
887 res.message,
888 'error'
889 );
890 }
891 }
892 });
893 });
894 });
895
896 checkForExpandCollapse();
897 })
898
899 function checkForExpandCollapse() {
900 add_menu_to_list();
901 currentStatus = true;
902 if((jQuery("#custom-menu .has-sub-tree").length == jQuery("#custom-menu .has-sub-tree.active").length) && jQuery("#custom-menu .has-sub-tree").length) {
903 jQuery("#expand-collapse-list").addClass("all-open");
904 } else {
905 jQuery("#expand-collapse-list").removeClass("all-open");
906 }
907 }
908
909 function check_for_sub_menu() {
910 jQuery("#custom-menu li.route").removeClass("has-sub-tree");
911 jQuery("#custom-menu li.route").each(function(){
912 if(jQuery(this).find("ul.ui-sortable li").length) {
913 jQuery(this).addClass("has-sub-tree");
914 if(jQuery(this).find("ul.ui-sortable:first").is(":hidden")) {
915 jQuery(this).removeClass("is-hidden");
916 } else {
917 jQuery(this).addClass("is-hidden")
918 }
919 } else {
920 jQuery(this).removeClass("active");
921 }
922 });
923 }
924
925 //recursively calculate the Width all titles
926 function calcWidth(obj){
927 var titles =
928 jQuery(obj).siblings('.space').children('.route').children('.title');
929 jQuery(titles).each(function(index, element){
930 var pTitleWidth = parseInt(jQuery(obj).css('width'));
931 var leftOffset = parseInt(jQuery(obj).siblings('.space').css('margin-left'));
932 var newWidth = pTitleWidth - leftOffset;
933 if (jQuery(obj).attr('id') == 'title_0'){
934 newWidth = newWidth - 10;
935 }
936 jQuery(element).css({
937 'width': newWidth
938 });
939 calcWidth(element);
940 });
941
942 }
943
944
945 /* code for sticky menu for media screen*/
946
947 if(wcp_settings.post_type == "attachment") {
948
949
950
951 jQuery(window).load(function() {
952 jQuery("button.button.media-button.select-mode-toggle-button").after("<button class='button organize-button'>Organize</button>");
953 if(jQuery(".wcp-custom-form").length) {
954 if (wp.Uploader !== undefined) {
955 wp.Uploader.queue.on('reset', function () {
956 resetMediaData(1);
957 });
958 }
959 jQuery(document).ajaxComplete(function(ev, jqXHR, settings) {
960 actionName = settings.data;
961 if(actionName.indexOf("action=delete-post&id=") == 0) {
962 resetMediaData(0);
963 }
964 });
965 }
966 });
967
968 function resetMediaData(loadData) {
969 jQuery.ajax({
970 url: wcp_settings.ajax_url,
971 data: "type=" + wcp_settings.post_type + "&action=wcp_get_default_list",
972 method: 'post',
973 success: function (res) {
974 res = jQuery.parseJSON(res);
975 jQuery("#custom-menu > ul#space_0").html(res.data);
976 jQuery(".header-posts .total-count").text(res.total_items);
977 selectedVal = jQuery("#media-attachment-taxonomy-filter").val();
978 if(selectedVal != "all" && loadData == 1) {
979 var wp1 = parent.wp;
980 wp1.media.frame.setState('insert');
981 if (wp1.media.frame.content.get() !== null) {
982 wp1.media.frame.content.get().collection.props.set({ignore: (+new Date())});
983 wp1.media.frame.content.get().options.selection.reset();
984 } else {
985 wp1.media.frame.library.props.set({ignore: (+new Date())});
986 }
987 }
988 if(res.taxonomies.length) {
989 var selectedDD = jQuery("#media-attachment-taxonomy-filter");
990 selectedDD.html("<option value='all'>All Folders</option><option value='unassigned'>(Unassigned)</option>");
991 for(i=0; i<res.taxonomies.length; i++) {
992 selectedDD.append("<option value='"+i+"'>"+res.taxonomies[i].name+" ("+res.taxonomies[i].count+")</option>");
993 }
994 selectedDD.val(selectedVal);
995 }
996 }
997 });
998 }
999
1000 function setMediaBoxWidth() {
1001 jQuery(".media-frame-content .media-toolbar").width(jQuery(".media-frame-content").width() - 20);
1002 }
1003
1004 setMediaBoxWidth();
1005
1006 jQuery(window).resize(function(){
1007 setMediaBoxWidth();
1008 });
1009
1010 jQuery(document).on("click", ".button.organize-button", function(){
1011 jQuery("button.button.media-button.select-mode-toggle-button").trigger("click");
1012 });
1013
1014 function setStickyHeaderForMedia() {
1015 if(!jQuery(".media-position").length) {
1016 jQuery(".media-frame-content .media-toolbar").before("<div class='media-position'></div>")
1017 }
1018
1019 if(jQuery(".media-position").length) {
1020 setMediaBoxWidth();
1021
1022 thisPosition = jQuery(".media-position").offset().top - jQuery(window).scrollTop();
1023 if(thisPosition <= 32) {
1024 jQuery(".media-frame-content .media-toolbar").addClass("sticky-media");
1025 jQuery(".media-position").height(jQuery(".media-frame-content .media-toolbar").outerHeight());
1026 } else {
1027 jQuery(".media-frame-content .media-toolbar").removeClass("sticky-media");
1028 jQuery(".media-position").height(1);
1029 }
1030 }
1031 }
1032
1033 jQuery(window).scroll(function(){
1034 setStickyHeaderForMedia()
1035 });
1036 } else {
1037 function setStickyHeaderForMedia() {}
1038 }