diff -r 000000000000 -r d970ebf37754 wp/wp-content/plugins/option-tree/assets/js/ot-admin.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/wp/wp-content/plugins/option-tree/assets/js/ot-admin.js Wed Nov 06 03:21:17 2013 +0000
@@ -0,0 +1,539 @@
+/**
+ * Option Tree UI
+ *
+ * Dependencies: jQuery, jQuery UI, ColorPicker
+ *
+ * @author Derek Herman (derek@valendesigns.com)
+ */
+;(function($) {
+ OT_UI = {
+ processing: false,
+ init: function() {
+ this.init_hide_body();
+ this.init_sortable();
+ this.init_add();
+ this.init_edit();
+ this.init_remove();
+ this.init_edit_title()
+ this.init_edit_id();
+ this.init_activate_layout();
+ this.init_upload();
+ this.init_upload_remove();
+ this.init_numeric_slider();
+ this.init_tabs();
+ this.init_radio_image_select();
+ this.init_select_wrapper();
+ this.fix_upload_parent();
+ this.fix_colorpicker();
+ this.fix_textarea();
+ this.replicate_ajax();
+ this.reset_settings();
+ },
+ init_hide_body: function(elm,type) {
+ var css = '.option-tree-setting-body';
+ if ( type == 'parent' ) {
+ $(css).not( elm.parent().parent().children(css) ).hide();
+ } else if ( type == 'child' ) {
+ elm.closest('ul').find(css).not( elm.parent().parent().children(css) ).hide();
+ } else if ( type == 'child-add' ) {
+ elm.children().find(css).hide();
+ } else if ( type == 'toggle' ) {
+ elm.parent().parent().children(css).toggle();
+ } else {
+ $(css).hide();
+ }
+ },
+ init_remove_active: function(elm,type) {
+ var css = '.option-tree-setting-edit';
+ if ( type == 'parent' ) {
+ $(css).not(elm).removeClass('active');
+ } else if ( type == 'child' ) {
+ elm.closest('ul').find(css).not(elm).removeClass('active');
+ } else if ( type == 'child-add' ) {
+ elm.children().find(css).removeClass('active');
+ } else {
+ $(css).removeClass('active');
+ }
+ },
+ init_sortable: function() {
+ $('.option-tree-sortable').each( function() {
+ if ( $(this).children('li').length ) {
+ var elm = $(this);
+ elm.show();
+ elm.sortable({
+ items: 'li:not(.ui-state-disabled)',
+ handle: 'div.open',
+ placeholder: 'ui-state-highlight',
+ start: function (event, ui) {
+ ui.placeholder.height(ui.item.height()-2);
+ },
+ stop: function(evt, ui) {
+ setTimeout(
+ function(){
+ OT_UI.update_ids(elm);
+ },
+ 200
+ )
+ }
+ });
+ }
+ });
+ },
+ init_add: function() {
+ $('.option-tree-section-add').live('click', function(e) {
+ e.preventDefault();
+ OT_UI.add(this,'section');
+ });
+ $('.option-tree-setting-add').live('click', function(e) {
+ e.preventDefault();
+ OT_UI.add(this,'setting');
+ });
+ $('.option-tree-help-add').live('click', function(e) {
+ e.preventDefault();
+ OT_UI.add(this,'the_contextual_help');
+ });
+ $('.option-tree-choice-add').live('click', function(e) {
+ e.preventDefault();
+ OT_UI.add(this,'choice');
+ });
+ $('.option-tree-list-item-add').live('click', function(e) {
+ e.preventDefault();
+ OT_UI.add(this,'list_item');
+ });
+ $('.option-tree-list-item-setting-add').live('click', function(e) {
+ e.preventDefault();
+ if ( $(this).parents('ul').parents('ul').hasClass('ui-sortable') ) {
+ alert(option_tree.setting_limit);
+ return false;
+ }
+ OT_UI.add(this,'list_item_setting');
+ });
+ },
+ init_edit: function() {
+ $('.option-tree-setting-edit').live('click', function(e) {
+ e.preventDefault();
+ if ( $(this).parents().hasClass('option-tree-setting-body') ) {
+ OT_UI.init_remove_active($(this),'child');
+ OT_UI.init_hide_body($(this),'child');
+ } else {
+ OT_UI.init_remove_active($(this),'parent');
+ OT_UI.init_hide_body($(this), 'parent');
+ }
+ $(this).toggleClass('active');
+ OT_UI.init_hide_body($(this), 'toggle');
+ });
+ },
+ init_remove: function() {
+ $('.option-tree-setting-remove').live('click', function(event) {
+ event.preventDefault();
+ if ( $(this).parents('li').hasClass('ui-state-disabled') ) {
+ alert(option_tree.remove_no);
+ return false;
+ }
+ var agree = confirm(option_tree.remove_agree);
+ if (agree) {
+ var list = $(this).parents('ul');
+ OT_UI.remove(this);
+ setTimeout( function() {
+ OT_UI.update_ids(list);
+ }, 200 );
+ }
+ return false;
+ });
+ },
+ init_edit_title: function() {
+ $('.option-tree-setting-title').live('keyup', function() {
+ OT_UI.edit_title(this);
+ });
+ },
+ init_edit_id: function() {
+ $('.section-id').live('keyup', function(){
+ OT_UI.update_id(this);
+ });
+ },
+ init_activate_layout: function() {
+ $('.option-tree-layout-activate').live('click', function() {
+ var active = $(this).parents('.option-tree-setting').find('.open').text();
+ $('.option-tree-layout-activate').removeClass('active');
+ $(this).toggleClass('active');
+ $('.active-layout-input').attr({'value':active});
+ });
+ $('#option-tree-options-layouts-form select').live('change', function() {
+ var agree = confirm(option_tree.activate_layout_agree);
+ if (agree) {
+ $('#option-tree-options-layouts-form').submit();
+ } else {
+ var active = $('#the_current_layout').attr('value');
+ $('#option-tree-options-layouts-form select option[value="' + active + '"]').attr({'selected':'selected'});
+ $('#option-tree-options-layouts-form select').prev('span').replaceWith('' + active + '');
+ }
+ });
+ },
+ add: function(elm,type) {
+ var self = this,
+ list = '',
+ list_class = '',
+ name = '',
+ post_id = 0,
+ get_option = '',
+ settings = '';
+ if ( type == 'the_contextual_help' ) {
+ list = $(elm).parent().find('ul:last');
+ list_class = 'list-contextual-help';
+ } else if ( type == 'choice' ) {
+ list = $(elm).parent().children('ul');
+ list_class = 'list-choice';
+ } else if ( type == 'list_item' ) {
+ list = $(elm).parent().children('ul');
+ list_class = 'list-sub-setting';
+ } else if ( type == 'list_item_setting' ) {
+ list = $(elm).parent().children('ul');
+ list_class = 'list-sub-setting';
+ } else {
+ list = $(elm).parent().find('ul:first');
+ list_class = ( type == 'section' ) ? 'list-section' : 'list-setting';
+ }
+ name = list.data('name');
+ post_id = list.data('id');
+ get_option = list.data('getOption');
+ settings = $('#'+name+'_settings_array').val();
+ if ( this.processing === false ) {
+ this.processing = true;
+ var count = parseInt(list.children('li').length);
+ if ( type == 'list_item' ) {
+ list.find('li input.option-tree-setting-title', self).each(function(){
+ var setting = $(this).attr('name'),
+ regex = /\[([0-9]+)\]/,
+ matches = setting.match(regex),
+ id = null != matches ? parseInt(matches[1]) : 0;
+ id++;
+ if ( id > count) {
+ count = id;
+ }
+ });
+ }
+ $.ajax({
+ url: option_tree.ajax,
+ type: 'post',
+ data: {
+ action: 'add_' + type,
+ count: count,
+ name: name,
+ post_id: post_id,
+ get_option: get_option,
+ settings: settings,
+ type: type
+ },
+ complete: function( data ) {
+ if ( type == 'choice' || type == 'list_item_setting' ) {
+ OT_UI.init_remove_active(list,'child-add');
+ OT_UI.init_hide_body(list,'child-add');
+ } else {
+ OT_UI.init_remove_active();
+ OT_UI.init_hide_body();
+ }
+ list.append('
' + data.responseText + '');
+ list.children().last().find('.option-tree-setting-edit').toggleClass('active');
+ list.children().last().find('.option-tree-setting-body').toggle();
+ list.children().last().find('.option-tree-setting-title').focus();
+ if ( type != 'the_contextual_help' ) {
+ OT_UI.update_ids(list);
+ }
+ setTimeout( function() {
+ OT_UI.init_sortable();
+ OT_UI.init_select_wrapper();
+ OT_UI.init_numeric_slider();
+ }, 500);
+ self.processing = false;
+ }
+ });
+ }
+ },
+ remove: function(e) {
+ $(e).parent().parent().parent('li').remove();
+ },
+ edit_title: function(e) {
+ if ( this.timer ) {
+ clearTimeout(e.timer);
+ }
+ this.timer = setTimeout( function() {
+ $(e).parent().parent().parent().parent().parent().children('.open').text(e.value);
+ }, 100);
+ return true;
+ },
+ update_id: function(e) {
+ if ( this.timer ) {
+ clearTimeout(e.timer);
+ }
+ this.timer = setTimeout( function() {
+ OT_UI.update_ids($(e).parents('ul'));
+ }, 100);
+ return true;
+ },
+ update_ids: function(list) {
+ var last_section, section, list_items = list.children('li');
+ list_items.each(function(index) {
+ if ( $(this).hasClass('list-section') ) {
+ section = $(this).find('.section-id').val().trim().toLowerCase().replace(/[^a-z0-9]/gi,'_');
+ if (!section) {
+ section = $(this).find('.section-title').val().trim().toLowerCase().replace(/[^a-z0-9]/gi,'_');
+ }
+ if (!section) {
+ section = last_section;
+ }
+ }
+ if ($(this).hasClass('list-setting') ) {
+ $(this).find('.hidden-section').attr({'value':section});
+ }
+ last_section = section;
+ });
+ },
+ init_upload: function() {
+ $(document).on('click', '.ot_upload_media', function() {
+ var field_id = $(this).parent('.option-tree-ui-upload-parent').find('input').attr('id'),
+ post_id = $(this).attr('rel'),
+ btnContent = '';
+ if ( window.wp && wp.media ) {
+ window.ot_media_frame = window.ot_media_frame || new wp.media.view.MediaFrame.Select({
+ title: $(this).attr('title'),
+ button: {
+ text: option_tree.upload_text
+ },
+ multiple: false
+ });
+ window.ot_media_frame.on('select', function() {
+ var attachment = window.ot_media_frame.state().get('selection').first(),
+ href = attachment.attributes.url,
+ mime = attachment.attributes.mime,
+ regex = /^image\/(?:jpe?g|png|gif|x-icon)$/i;
+ if ( mime.match(regex) ) {
+ btnContent += '';
+ }
+ btnContent += ''+option_tree.remove_media_text+'';
+ $('#'+field_id).val(href);
+ $('#'+field_id+'_media').remove();
+ $('#'+field_id).parent().parent('div').append('');
+ $('#'+field_id+'_media').append(btnContent).slideDown();
+ window.ot_media_frame.off('select');
+ }).open();
+ } else {
+ var backup = window.send_to_editor,
+ intval = window.setInterval(
+ function() {
+ if ( $('#TB_iframeContent').length > 0 && $('#TB_iframeContent').attr('src').indexOf( "&field_id=" ) !== -1 ) {
+ $('#TB_iframeContent').contents().find('#tab-type_url').hide();
+ }
+ $('#TB_iframeContent').contents().find('.savesend .button').val(option_tree.upload_text);
+ }, 50);
+ tb_show('', 'media-upload.php?post_id='+post_id+'&field_id='+field_id+'&type=image&TB_iframe=1');
+ window.send_to_editor = function(html) {
+ var href = $(html).find('img').attr('src');
+ if ( typeof href == 'undefined') {
+ href = $(html).attr('src');
+ }
+ if ( typeof href == 'undefined') {
+ href = $(html).attr('href');
+ }
+ var image = /\.(?:jpe?g|png|gif|ico)$/i;
+ if (href.match(image) && OT_UI.url_exists(href)) {
+ btnContent += '';
+ }
+ btnContent += ''+option_tree.remove_media_text+'';
+ $('#'+field_id).val(href);
+ $('#'+field_id+'_media').remove();
+ $('#'+field_id).parent().parent('div').append('');
+ $('#'+field_id+'_media').append(btnContent).slideDown();
+ OT_UI.fix_upload_parent();
+ tb_remove();
+ window.clearInterval(intval);
+ window.send_to_editor = backup;
+ };
+ }
+ return false;
+ });
+ },
+ init_upload_remove: function() {
+ $('.option-tree-ui-remove-media').live('click', function(event) {
+ event.preventDefault();
+ var agree = confirm(option_tree.remove_agree);
+ if (agree) {
+ OT_UI.remove_image(this);
+ return false;
+ }
+ return false;
+ });
+ },
+ init_upload_fix: function(elm) {
+ var id = $(elm).attr('id'),
+ val = $(elm).val(),
+ img = $(elm).parent().next('option-tree-ui-media-wrap').find('img'),
+ src = img.attr('src'),
+ btnContent = '';
+ if ( val != src ) {
+ img.attr('src', val);
+ }
+ if ( val !== '' && ( typeof src == 'undefined' || src == false ) && OT_UI.url_exists(val) ) {
+ var image = /\.(?:jpe?g|png|gif|ico)$/i;
+ if (val.match(image)) {
+ btnContent += '';
+ }
+ btnContent += ''+option_tree.remove_media_text+'';
+ $('#'+id).val(val);
+ $('#'+id+'_media').remove();
+ $('#'+id).parent().parent('div').append('');
+ $('#'+id+'_media').append(btnContent).slideDown();
+ } else if ( val == '' || ! OT_UI.url_exists(val) ) {
+ $(elm).parent().next('.option-tree-ui-media-wrap').remove();
+ }
+ },
+ init_numeric_slider: function() {
+ $(".ot-numeric-slider-wrap").each(function() {
+ var hidden = $(".ot-numeric-slider-hidden-input", this),
+ value = hidden.val(),
+ helper = $(".ot-numeric-slider-helper-input", this);
+ if ( ! value ) {
+ value = hidden.data("min");
+ helper.val(value)
+ }
+ $(".ot-numeric-slider", this).slider({
+ min: hidden.data("min"),
+ max: hidden.data("max"),
+ step: hidden.data("step"),
+ value: value,
+ slide: function(event, ui) {
+ hidden.add(helper).val(ui.value);
+ }
+ });
+ });
+ },
+ init_tabs: function() {
+ $(".wrap.settings-wrap .ui-tabs").tabs({
+ fx: {
+ opacity: "toggle",
+ duration: "fast"
+ }
+ });
+ $(".wrap.settings-wrap .ui-tabs a.ui-tabs-anchor").on("click", function(event, ui) {
+ var obj = "input[name='_wp_http_referer']";
+ if ( $(obj).length > 0 ) {
+ var url = $(obj).val(),
+ hash = $(this).attr('href');
+ if ( url.indexOf("#") != -1 ) {
+ var o = url.split("#")[1],
+ n = hash.split("#")[1];
+ url = url.replace(o, n);
+ } else {
+ url = url + hash;
+ }
+ $(obj).val(url);
+ }
+ });
+ },
+ init_radio_image_select: function() {
+ $('.option-tree-ui-radio-image').live('click', function() {
+ $(this).closest('.type-radio-image').find('.option-tree-ui-radio-image').removeClass('option-tree-ui-radio-image-selected');
+ $(this).toggleClass('option-tree-ui-radio-image-selected');
+ $(this).parent().find('.option-tree-ui-radio').attr('checked', true);
+ });
+ },
+ init_select_wrapper: function() {
+ $('.option-tree-ui-select').each(function () {
+ if ( ! $(this).parent().hasClass('select-wrapper') ) {
+ $(this).wrap('');
+ $(this).parent('.select-wrapper').prepend('' + $(this).find('option:selected').text() + '');
+ }
+ });
+ $('.option-tree-ui-select').live('change', function () {
+ $(this).prev('span').replaceWith('' + $(this).find('option:selected').text() + '');
+ });
+ $('.option-tree-ui-select').bind($.browser.msie ? 'click' : 'change', function(event) {
+ $(this).prev('span').replaceWith('' + $(this).find('option:selected').text() + '');
+ });
+ },
+ bind_colorpicker: function(field_id) {
+ $('#'+field_id).ColorPicker({
+ onSubmit: function(hsb, hex, rgb) {
+ $('#'+field_id).val('#'+hex);
+ },
+ onBeforeShow: function () {
+ $(this).ColorPickerSetColor(this.value);
+ return false;
+ },
+ onChange: function (hsb, hex, rgb) {
+ var bc = $.inArray(hex, [ 'FFFFFF', 'FFF', 'ffffff', 'fff' ]) != -1 ? 'ccc' : hex;
+ $('#cp_'+field_id).css({'backgroundColor':'#'+hex,'borderColor':'#'+bc});
+ $('#cp_'+field_id).prev('input').attr('value', '#'+hex);
+ }
+ })
+ .bind('keyup', function(){
+ $(this).ColorPickerSetColor(this.value);
+ });
+ },
+ fix_upload_parent: function() {
+ $('.option-tree-ui-upload-input').live('focus blur', function(){
+ $(this).parent('.option-tree-ui-upload-parent').toggleClass('focus');
+ OT_UI.init_upload_fix(this);
+ });
+ },
+ remove_image: function(e) {
+ $(e).parent().parent().find('.option-tree-ui-upload-input').attr('value','');
+ $(e).parent('.option-tree-ui-media-wrap').remove();
+ },
+ fix_colorpicker: function() {
+ $('.cp_input').live('blur', function() {
+ $('.cp_input').each( function(index, el) {
+ var val = $(el).val();
+ var reg = /^[A-Fa-f0-9]{6}$/;
+ if( reg.test(val) && val != '' ) {
+ $(el).attr('value', '#'+val)
+ } else if ( val == '' ) {
+ $(this).next('.cp_box').css({'background':'#f1f1f1','border-color':'#ccc'});
+ }
+ });
+ });
+ },
+ fix_textarea: function() {
+ $('.wp-editor-area').focus( function(){
+ $(this).parent('div').css({borderColor:'#bbb'});
+ }).blur( function(){
+ $(this).parent('div').css({borderColor:'#ccc'});
+ });
+ },
+ replicate_ajax: function() {
+ if (location.href.indexOf("#") != -1) {
+ var url = $("input[name=\'_wp_http_referer\']").val(),
+ hash = location.href.substr(location.href.indexOf("#"));
+ $("input[name=\'_wp_http_referer\']").val( url + hash );
+ this.scroll_to_top();
+ }
+ setTimeout( function() {
+ $(".wrap.settings-wrap .fade").fadeOut("fast");
+ }, 3000 );
+ },
+ reset_settings: function() {
+ $(".reset-settings").live("click", function(event){
+ var agree = confirm(option_tree.reset_agree);
+ if (agree) {
+ return true;
+ } else {
+ return false;
+ }
+ event.preventDefault();
+ });
+ },
+ url_exists: function(url) {
+ var http = new XMLHttpRequest();
+ http.open('HEAD', url, false);
+ http.send();
+ return http.status!=404;
+ },
+ scroll_to_top: function() {
+ setTimeout( function() {
+ $(this).scrollTop(0);
+ }, 50 );
+ }
+ };
+ $(document).ready( function() {
+ OT_UI.init();
+ });
+})(jQuery);
\ No newline at end of file