1/* 2 enforcesummary plugin for DokuWiki 3 File: script.js 4 http://www.dokuwiki.org/plugin:enforcesummary 5 */ 6 7jQuery(function() { 8 var $summary = jQuery('#edit__summary'); // get summary field 9 if (typeof $summary.val() == 'undefined') return; 10 11 // Minor Edit by default 12 // Parts copied from https://www.dokuwiki.org/tips:autominor 13 var $minoredit = jQuery('#minoredit'); 14 var prv = jQuery('div.preview'); 15 if (!prv[0] && JSINFO.plugin_enforcesummary.default_minoredit) 16 jQuery('#minoredit').prop('checked', true); 17 18 // Parts copied from https://www.dokuwiki.org/tips:summary_enforcement 19 $summary.keyup(enforceSummary).focus(enforceSummary); 20 $minoredit.change(enforceSummary); 21 enforceSummary(); // summary may be there if we're previewing 22}); 23 24function enforceSummary() { 25 var $summary = jQuery('#edit__summary'); // get summary field 26 var $minoredit = jQuery('#minoredit'); 27 var ckgd = jQuery( "input[type=checkbox][name=ckgdoku]:checked" ).val(); 28 var ckge = jQuery( "input[type=checkbox][name=ckgedit]:checked" ).val(); 29 var m_class, $savebutton; 30 if(typeof ckgd == 'string' || typeof ckge == 'string') { 31 $savebutton = jQuery("#save_button"); 32 m_class = "plugin_enforcesummary_missing"; 33 } else { 34 $savebutton = jQuery("#edbtn__save"); 35 m_class = "missing" 36 37 } 38 var prv = jQuery('div.preview'); 39 40 // always require summary, even when minor change option is checked 41 // if($summary.val().replace(/^\s+/,"") === '') 42 43 summary_filled = !($summary.val().replace(/^\s+/,'') === ''); 44 minor_checked = $minoredit.is(':checked'); 45 46 // set summary inputbox attribute 47 if (summary_filled) { 48 $summary.removeClass(m_class); 49 } else { 50 $summary.addClass(m_class); 51 } 52 53 // set save button attribute 54 save_ready = false; 55 if (JSINFO.plugin_enforcesummary.enforce_summary) { 56 if (summary_filled || minor_checked) save_ready = true; 57 } 58 if (JSINFO.plugin_enforcesummary.enforce_preview) { 59 if (prv[0]) { save_ready = true; } 60 else { save_ready = false; } 61 } 62 if (save_ready) { 63 $savebutton.removeAttr("disabled").css("color", "black"); 64 } else { 65 $savebutton.attr("disabled", true).css("color", "#999"); 66 } 67} 68