diff --git a/capsman-enhanced.php b/capsman-enhanced.php index bfd08933..27825d5b 100644 --- a/capsman-enhanced.php +++ b/capsman-enhanced.php @@ -3,7 +3,7 @@ * Plugin Name: PublishPress Capabilities * Plugin URI: https://publishpress.com/capability-manager/ * Description: Manage WordPress role definitions, per-site or network-wide. Organizes post capabilities by post type and operation. - * Version: 2.13.0 + * Version: 2.14.0 * Author: PublishPress * Author URI: https://publishpress.com/ * Text Domain: capability-manager-enhanced @@ -69,7 +69,7 @@ add_action('plugins_loaded', function () { if (!defined('CAPSMAN_VERSION')) { - define('CAPSMAN_VERSION', '2.13.0'); + define('CAPSMAN_VERSION', '2.14.0'); define('CAPSMAN_ENH_VERSION', CAPSMAN_VERSION); define('PUBLISHPRESS_CAPS_VERSION', CAPSMAN_VERSION); } @@ -173,3 +173,10 @@ function ($links, $file) { } do_action('publishpress_capabilities_loaded'); }, -10); + +register_activation_hook( + __FILE__, + function () { + update_option('pp_capabilities_activated', true); + } +); \ No newline at end of file diff --git a/common/js/admin.dev.js b/common/js/admin.dev.js index bb83d6b2..8453b4cb 100644 --- a/common/js/admin.dev.js +++ b/common/js/admin.dev.js @@ -31,8 +31,8 @@ jQuery(document).ready( function($) { //$('table.cme-typecaps span.cap-x,table.cme-checklist span.cap-x,table.cme-checklist td.cap-neg span').live( 'click', function(e) { $(document).on( 'click', 'table.cme-typecaps span.cap-x,table.cme-checklist span.cap-x,table.cme-checklist td.cap-neg span', function(e) { $(this).closest('td').removeClass('cap-neg').removeClass('cap-yes').addClass('cap-no'); - $(this).parent().find('input[type="checkbox"]').prop('checked',false); - $(this).parent().find('input.cme-negation-input').remove(); + $(this).closest('td').find('input[type="checkbox"]').prop('checked',false); + $(this).closest('td').find('input.cme-negation-input').remove(); // Also apply for any other checkboxes with the same name var cap_name_attr = $(this).next('input[type="checkbox"]').attr('name'); @@ -41,8 +41,8 @@ jQuery(document).ready( function($) { cap_name_attr = $(this).next('label').find('input[type="checkbox"]').attr('name'); } - $('input[name="' + cap_name_attr + '"]').parent().closest('td').removeClass('cap-neg').removeClass('cap-yes').addClass('cap-no'); - $('input[name="' + cap_name_attr + '"]').prop('checked',false).parent().find('input.cme-negation-input').remove(); + $('input[name="' + cap_name_attr + '"]').closest('td').removeClass('cap-neg').removeClass('cap-yes').addClass('cap-no'); + $('input[name="' + cap_name_attr + '"]').prop('checked',false).closest('td').find('input.cme-negation-input').remove(); if ($(this).closest('td').hasClass('capability-checkbox-rotate')) { $(this).closest('td').find('input[type="checkbox"]').prop('checked', true); @@ -51,8 +51,8 @@ jQuery(document).ready( function($) { $('tr.unfiltered_upload').find('td').removeClass('cap-neg').removeClass('cap-yes').addClass('cap-no'); $('tr.unfiltered_upload').find('input[type="checkbox"]').prop('checked',false); $('tr.unfiltered_upload').find('input.cme-negation-input').remove(); - $('input[name="caps[unfiltered_upload]"]').parent().closest('td').removeClass('cap-neg').removeClass('cap-yes').addClass('cap-no'); - $('input[name="caps[unfiltered_upload]"]').prop('checked', true).parent().find('input.cme-negation-input').remove(); + $('input[name="caps[unfiltered_upload]"]').closest('td').removeClass('cap-neg').removeClass('cap-yes').addClass('cap-no'); + $('input[name="caps[unfiltered_upload]"]').prop('checked', true).closest('td').find('input.cme-negation-input').remove(); } } @@ -61,8 +61,8 @@ jQuery(document).ready( function($) { } if ($(this).closest('tr').hasClass('unfiltered_upload')) { - $('input[name="caps[upload_files]"]').parent().closest('td').removeClass('cap-neg').removeClass('cap-yes').addClass('cap-no'); - $('input[name="caps[upload_files]"]').prop('checked', true).parent().find('input.cme-negation-input').remove(); + $('input[name="caps[upload_files]"]').closest('td').removeClass('cap-neg').removeClass('cap-yes').addClass('cap-no'); + $('input[name="caps[upload_files]"]').prop('checked', true).closest('td').find('input.cme-negation-input').remove(); } return false; }); diff --git a/common/js/admin.js b/common/js/admin.js index d5429690..b8967395 100644 --- a/common/js/admin.js +++ b/common/js/admin.js @@ -1 +1 @@ -jQuery(document).ready((function(e){var{__:t,_x:a,_n:n,_nx:s}=wp.i18n;function i(a="success"){setTimeout((function(){var n="ppc-floating-msg-"+Math.round((new Date).getTime()+100*Math.random()),s=t("success"===a?"Changes saved!":" Error: changes can't be saved.","capability-manager-enhanced"),i=e(".ppc-floating-status").length;e("#wpbody-content").after(''+s+""),e("."+n).css("bottom",45*i).fadeIn(1e3).delay(1e4).fadeOut(1e3,(function(){e(this).remove()}))}),500)}function c(t,a){var n=e("#toplevel_page_pp-capabilities-dashboard"),s=e(n).find("li."+t+"-menu-item");s.length&&(1==a?s.removeClass("ppc-hide-menu-item").find("a").removeClass("ppc-hide-menu-item"):s.addClass("ppc-hide-menu-item").find("a").addClass("ppc-hide-menu-item"))}e("a.neg-cap").attr("title",cmeAdmin.negationCaption),e("a.neg-type-caps").attr("title",cmeAdmin.typeCapsNegationCaption),e("a.normal-cap").attr("title",cmeAdmin.switchableCaption),e('span.cap-x:not([class*="pp-cap-key"])').html(cmeAdmin.capNegated),e('table.cme-checklist input[class!="cme-check-all"]').not(":disabled").attr("title",cmeAdmin.chkCaption),e(".ppc-checkboxes-documentation-link").length>0&&e(".ppc-checkboxes-documentation-link").attr("target","blank"),e("table.cme-checklist a.neg-cap").click((function(t){e(this).closest("td").removeClass("cap-yes").removeClass("cap-no").addClass("cap-neg");var a=e(this).parent().find('input[type="checkbox"]').attr("name");return e(this).after(''),e('input[name="'+a+'"]').closest("td").removeClass("cap-yes").removeClass("cap-no").addClass("cap-neg"),e(this).closest("tr").hasClass("unfiltered_upload")&&(e('input[name="caps[upload_files]"]').closest("td").addClass("cap-neg"),e('input[name="caps[upload_files]"]').closest("td").append(''),e('input[name="caps[upload_files]"]').parent().next("a.neg-cap:visible").click()),!1})),e(document).on("click","table.cme-typecaps span.cap-x,table.cme-checklist span.cap-x,table.cme-checklist td.cap-neg span",(function(t){e(this).closest("td").removeClass("cap-neg").removeClass("cap-yes").addClass("cap-no"),e(this).parent().find('input[type="checkbox"]').prop("checked",!1),e(this).parent().find("input.cme-negation-input").remove();var a=e(this).next('input[type="checkbox"]').attr("name");return a||(a=e(this).next("label").find('input[type="checkbox"]').attr("name")),e('input[name="'+a+'"]').parent().closest("td").removeClass("cap-neg").removeClass("cap-yes").addClass("cap-no"),e('input[name="'+a+'"]').prop("checked",!1).parent().find("input.cme-negation-input").remove(),e(this).closest("td").hasClass("capability-checkbox-rotate")&&(e(this).closest("td").find('input[type="checkbox"]').prop("checked",!0),e(this).closest("td").hasClass("upload_files")&&(e("tr.unfiltered_upload").find("td").removeClass("cap-neg").removeClass("cap-yes").addClass("cap-no"),e("tr.unfiltered_upload").find('input[type="checkbox"]').prop("checked",!1),e("tr.unfiltered_upload").find("input.cme-negation-input").remove(),e('input[name="caps[unfiltered_upload]"]').parent().closest("td").removeClass("cap-neg").removeClass("cap-yes").addClass("cap-no"),e('input[name="caps[unfiltered_upload]"]').prop("checked",!0).parent().find("input.cme-negation-input").remove())),e(this).closest("td").find('input[type="checkbox"]').hasClass("pp-single-action-rotate")&&e(this).closest("td").find('input[type="checkbox"]').prop("checked",!0),e(this).closest("tr").hasClass("unfiltered_upload")&&(e('input[name="caps[upload_files]"]').parent().closest("td").removeClass("cap-neg").removeClass("cap-yes").addClass("cap-no"),e('input[name="caps[upload_files]"]').prop("checked",!0).parent().find("input.cme-negation-input").remove()),!1})),e("#publishpress_caps_form").bind("keypress",(function(t){if(13==t.keyCode)return e(document.activeElement).parent().find('input[type="submit"]').first().click(),!1})),e("input.cme-check-all").click((function(t){e(this).closest("table").find('input[type="checkbox"][disabled!="disabled"]:visible').prop("checked",e(this).is(":checked"))})),e("a.cme-neg-all").click((function(t){return e(this).closest("table").find("a.neg-cap:visible").click(),!1})),e("a.cme-switch-all").click((function(t){return e(this).closest("table").find("td.cap-neg span").click(),!1})),e("table.cme-typecaps a.neg-type-caps").click((function(t){return e(this).closest("tr").find('td[class!="cap-neg"]').filter('td[class!="cap-unreg"]').each((function(){e(this).addClass("cap-neg");var t=e(this).find('input[type="checkbox"]').attr("name");e(this).append(''),e('input[name="'+t+'"]').parent().next("a.neg-cap:visible").click()})),!1})),e("table.cme-typecaps th").click((function(){var t=e(this).index(),a=!e(this).prop("checked_all");if(e(this).hasClass("term-cap"))var n='[class*="term-cap"]';else n='[class*="post-cap"]';var s=e(this).closest("table").find("tr td"+n+":nth-child("+(t+1)+') input[type="checkbox"]:visible');e(s).each((function(t,n){e('input[name="'+e(this).attr("name")+'"]').prop("checked",a)})),e(this).prop("checked_all",a)})),e("a.cme-fix-read-cap").click((function(){return e('input[name="caps[read]"]').prop("checked",!0),e('input[name="caps[read]"].cme-negation-input').remove(),e('input[name="SaveRole"]').trigger("click"),!1})),e(".ppc-filter-select").each((function(){var t=e(this),a=new Array;e(this).parent().siblings("table").find("tbody").find("tr").each((function(){a.push({value:e(this).attr("class"),text:e(this).find(".cap_type").text()})})),a.forEach((function(a,n){t.append(e("