(function(window, $, undefined) { 'use strict'; // popup service var msg = { makeid: function(length) { var text = ""; var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; for (var i = 0; i < length; i++) text += possible.charAt(Math.floor(Math.random() * possible.length)); return text; }, count: window.popCount = 0, pop: function(message) { console.log(message); this.count++; var $id = this.makeid(5); var pops = $('.hd-pop'); var gap = 10; var top = 20; var item = 70; if (pops.length === 0) this.count = 1; $('body').append('
' + message + '
'); $('#pop_' + $id).css('top', top + ((item + gap) * this.count)); $('#pop_' + $id).addClass('animated lightSpeedIn'); setTimeout( function() { $('#pop_' + $id).addClass('animated lightSpeedOut'); setTimeout( function() { $('#pop_' + $id).remove(); }, 1000 ); }, 2000 ); } }; var utils = { navButton: function(id, name) { var template = '
  • '+name+'
  • '; $('#wp-admin-bar-root-default').append(template); } }; var acfVars = { links : true, outline : false, textInputs : null, init: function() { var textInputs = $('[contenteditable]'); var elements = document.querySelectorAll('.editableHD'); var editor = new MediumEditor(elements); this.textInputs = textInputs; textInputs.each(function() { var contents = $(this).html(); $(this).on('focus', function() {}).on('blur', function() { if (contents != $(this).html()) { $(this).addClass('textChanged'); $('#wp-admin-bar-edit-live a').text('Save unsaved progress'); $('#wp-admin-bar-edit-live a').removeAttr('disabled'); contents = $(this).html(); } }); }); } }; var acfEditor = { initEdit : function () { utils.navButton('wp-admin-bar-edit-live', 'Save'); $('#wp-admin-bar-root-default').on('click', '#wp-admin-bar-edit-live', function() { var editableText = $('[contenteditable].textChanged'); var textString = []; editableText.each(function() { var text = $(this).html(); var key = $(this).data('key'); var name = $(this).data('name'); var postid = $(this).data('postid'); var textArr = [key, text, name, postid]; textString.push(textArr); }); if(editableText.length === 0) { msg.pop('Nothing to save'); return; } else { msg.pop('Saving your changes...'); } $.ajax({ url: meta.ajaxurl, data: { 'action': 'update_texts', 'textArr': textString }, success: function(data) { msg.pop('Changes have been saved!'); textString = []; $('#wp-admin-bar-edit-live a').text('Save'); $('[contenteditable].textChanged').removeClass('textChanged'); }, error: function(errorThrown) { msg.pop('Something went wrong!'); console.error('errorThrown'); } }); }); }, initToggle : function () { utils.navButton('wp-admin-bar-toggle-outline', 'Toggle outline'); $('#wp-admin-bar-root-default').on('click', '#wp-admin-bar-toggle-outline', function() { if(acfVars.outline) { acfVars.outline = false; acfVars.textInputs.parent().removeClass('hd-toggle-acf-outline').css('outline', 'none'); } else { acfVars.outline = true; acfVars.textInputs.parent().addClass('hd-toggle-acf-outline').css('outline', '1px solid red'); } }); }, initLinks : function () { utils.navButton('wp-admin-bar-toggle-actions', 'Disable links'); $('#wp-admin-bar-root-default').on('click', '#wp-admin-bar-toggle-actions', function() { if(acfVars.links) { $(this).find('a').text('Enable links'); acfVars.links = false; acfVars.textInputs.parent('a').addClass('hd-disable-acf-links').css('cursor', 'text'); acfVars.textInputs.parent('button').addClass('hd-disable-acf-links').css('cursor', 'text'); } else { $(this).find('a').text('Disable links'); acfVars.links = true; acfVars.textInputs.parent('a').removeClass('hd-disable-acf-links').css('cursor', 'auto'); acfVars.textInputs.parent('button').removeClass('hd-disable-acf-links').css('cursor', 'auto'); } }); $('body').on('click', '.hd-disable-acf-links', function(e) { console.log('a'); e.preventDefault(); }); } }; $(document).ready(function() { // register nav buttons acfVars.init(); acfEditor.initEdit(); acfEditor.initToggle(); acfEditor.initLinks(); }); })(window, window.jQuery);