| @@ -54,43 +54,52 @@ | ||
| 54 | 54 | } |
| 55 | 55 | }); |
| 56 | 56 | |
| 57 | 57 | |
| 58 | - $('body').on('click', '.wpdocs_list ul li.ab-dir > a.dtitle', function(){ | |
| 59 | - var obj = $(this); | |
| 60 | - var id = obj.parent().data('id'); | |
| 61 | - var resource_id = obj.parent().data('resource'); | |
| 62 | - var html_str = $.parseHTML(obj.html()); | |
| 63 | - var folder_name = ''; | |
| 64 | - $.each( html_str, function( i, el ){ | |
| 65 | - $.each(el, function(k,v){ | |
| 66 | - switch(k){ | |
| 67 | - | |
| 68 | - case 'wholeText': | |
| 69 | - folder_name = v; | |
| 70 | - | |
| 71 | - break; | |
| 72 | - | |
| 73 | - } | |
| 74 | - }); | |
| 58 | + $('body').on('click', '.wpdocs_list ul li.ab-dir > a.dtitle', function () { | |
| 59 | + const obj = $(this); | |
| 60 | + const id = obj.parent().data('id'); | |
| 61 | + const resource_id = obj.parent().data('resource'); | |
| 62 | + | |
| 63 | + // Get plain folder name from HTML | |
| 64 | + let html_str = $.parseHTML(obj.html()); | |
| 65 | + let folder_name = ''; | |
| 66 | + | |
| 67 | + $.each(html_str, function (i, el) { | |
| 68 | + if (el.wholeText) { | |
| 69 | + folder_name = el.wholeText; | |
| 70 | + } | |
| 75 | 71 | }); |
| 76 | - var rename_to = prompt(wpdocs_ajax_object.rename_confirm, folder_name); | |
| 77 | - | |
| 78 | - if($.trim(rename_to)!=''){ | |
| 79 | - var data = { | |
| 80 | - 'action': 'wpdocs_update_folder', | |
| 81 | - 'dir_id': id, | |
| 82 | - 'resource_id': resource_id, | |
| 83 | - 'new_name': rename_to, | |
| 84 | - 'nonce': wpdocs_ajax_object.nonce | |
| 85 | - }; | |
| 86 | - // We can also pass the url value separately from ajaxurl for front end AJAX implementations | |
| 87 | - $.post(wpdocs_ajax_object.ajax_url, data, function(response) { | |
| 88 | - //window.location.reload(); | |
| 89 | - obj.html(rename_to); | |
| 90 | - }); | |
| 72 | + | |
| 73 | + let rename_to = prompt(wpdocs_ajax_object.rename_confirm, folder_name); | |
| 74 | + | |
| 75 | + // Cancelled or empty input | |
| 76 | + if (!rename_to || $.trim(rename_to) === '') { | |
| 77 | + return; | |
| 91 | 78 | } |
| 79 | + | |
| 80 | + // Strip HTML tags | |
| 81 | + rename_to = rename_to.replace(/(<([^>]+)>)/gi, ""); | |
| 82 | + | |
| 83 | + const data = { | |
| 84 | + action: 'wpdocs_update_folder', | |
| 85 | + dir_id: id, | |
| 86 | + resource_id: resource_id, | |
| 87 | + new_name: rename_to, | |
| 88 | + nonce: wpdocs_ajax_object.nonce | |
| 89 | + }; | |
| 90 | + | |
| 91 | + $.post(wpdocs_ajax_object.ajax_url, data, function (response) { | |
| 92 | + if (response.success && response.data && response.data.msg) { | |
| 93 | + // Update folder name in DOM | |
| 94 | + obj.text(rename_to); | |
| 95 | + alert(response.data.msg); | |
| 96 | + } else { | |
| 97 | + alert(response.data?.msg || 'Rename failed.'); | |
| 98 | + } | |
| 99 | + }); | |
| 92 | 100 | }); |
| 101 | + | |
| 93 | 102 | |
| 94 | 103 | |
| 95 | 104 | $('body').on('click', '.wpdocs_list ul li.ab-dir a.wpd-edit', function(){ |
| 96 | 105 | $(this).closest('li.ab-dir').find('a.dtitle').click(); |