felixarntz/plugin-lib

View on GitHub
assets/dist/js/edit-model.min.js

Summary

Maintainability
A
0 mins
Test Coverage
/*!
 * plugin-lib (https://github.com/felixarntz/plugin-lib)
 * By Felix Arntz (https://leaves-and-love.net)
 * Licensed under GPL-2.0-or-later
 */
!function(e,t){"use strict";function n(){window.onbeforeunload=function(){return!0}}function i(){if(!f){f=!0;var e={};e.nonce=t.generate_slug_nonce,e[t.primary_property]=t.primary_property_value;for(var n in s)e[s[n].propertyName]=s[n].$elem.val();wp.ajax.post(t.ajax_prefix+"model_generate_slug",e).done(function(e){e.verified&&e.verified.length&&(a=e.verified,u.val(a),o.text(a),"none"===p.css("display")&&p.fadeIn("slow")),f=!1}).fail(function(e){console.error(e),f=!1})}}function r(){if(!f){f=!0;var n=e("#edit-slug-buttons"),r=n.html(),l=o.html();n.html('<button type="button" class="save button button-small">'+t.i18n.ok+'</button> <button type="button" class="cancel button-link">'+t.i18n.cancel+"</button>"),n.children(".save").one("click",function(){var l=o.children("input").val();if(l==a)return void n.children(".cancel").trigger("click");var p={};p.nonce=t.verify_slug_nonce,p[t.primary_property]=t.primary_property_value,p[t.slug_property]=l,wp.ajax.post(t.ajax_prefix+"model_verify_slug",p).done(function(t){if(t.verified&&t.verified.length){if(a=t.verified,n.html(r),u.val(a),o.text(a),e(".edit-slug").focus(),!c){c=!0;for(var l in s)s[l].$elem.off("change",i)}f=!1}else n.children(".cancel").trigger("click")}).fail(function(e){console.error(e),n.children(".cancel").trigger("click")})}),n.children(".cancel").one("click",function(){n.html(r),u.val(a),o.html(l),f=!1}),o.html('<input type="text" id="new-post-slug" value="'+a+'" autocomplete="off" />').children("input").keydown(function(e){var t=e.which;13===t?(e.preventDefault(),n.children(".save").trigger("click")):27===t&&n.children(".cancel").trigger("click")}).keyup(function(){u.val(this.value)}).focus()}}e(".submitdelete").on("click",function(e){window.confirm(t.i18n.confirm_deletion)||e.preventDefault()}),e("#post").on("change",".plugin-lib-control",n),e("#post").on("keydown",'input[type="text"].plugin-lib-control',n),e("#post").on("keydown",'input[type="number"].plugin-lib-control',n),e("#post").on("keydown",'input[type="email"].plugin-lib-control',n),e("#post").on("click",'input[type="checkbox"]',n),e("#post").on("click",'input[type="radio"]',n),e("#post").on("submit",function(){window.onbeforeunload=null});var l=t.prefix+t.singular_slug;t.primary_property_value&&(l+="_"+t.primary_property_value),e(".nav-tab").on("click",function(t){var n,i,r,o=e(this),a=e(o.attr("href")),c=o.parent().children(".nav-tab");if(t.preventDefault(),"true"!==o.attr("aria-selected")){for(c.each(function(){e(this).attr("aria-selected","false"),e(e(this).attr("href")).attr("aria-hidden","true")}),o.attr("aria-selected","true"),a.attr("aria-hidden","false").find(".plugin-lib-map-control").each(function(){e(this).wpMapPicker("refresh")}),n=a.find("input,select,textarea,button,a,.select2-selection"),r=0;r<n.length&&(i=e(n.get(r)),"-1"===i.attr("tabindex"));r++)i=void 0;i&&i.focus(),window.setUserSetting(l,o.attr("id").replace("tab-label-",""))}});var o,a,c,u=e("#post_name"),p=e("#edit-slug-box"),s=[],f=!1;if(u.length&&p.length){if(o=e("#editable-post-name"),a=u.val(),c=!!a.length,!c&&t.slug_dependencies)for(var d in t.slug_dependencies){var v=e('[name="'+t.slug_dependencies[d]+'"]:input');v.length&&(s.push({propertyName:t.slug_dependencies[d],$elem:v}),v.on("change",i))}e("#titlediv").on("click",".edit-slug",function(){r()})}var g=e("#post-preview");g.length&&g.on("click",function(t){var n=e(this),i=e("#post_action"),r=e("form#post"),l=r.val(),o=r.attr("target")||"";t.preventDefault(),n.hasClass("disabled")||(i.val("preview"),r.attr("target","wp-preview").submit().attr("target",o),i.val(l))})}(jQuery,pluginLibEditModelData);