/** * @author Black Cat Development * @copyright 2013, Black Cat Development * @link http://blackcat-cms.org * @license http://www.gnu.org/licenses/gpl.html * @category CAT_Core * @package freshcat * **/ (function ($) { $.fn.page_tree = function (options) { var defaults = { beforeSend: function(){}, afterSend: function(){} }; var options = $.extend(defaults, options); return this.each(function () { // Storing $(this) in a variable var element = $(this); if ( element.find('li').size() > 1 ) { element.find('ul').sortable({ cancel: '.ui-state-disabled', helper: 'clone', handle: 'div.fc_page_link', axis: 'y', update: function(event, ui) { var dates = { 'page_id': $(this).sortable('toArray'), 'table': 'pages', '_cat_ajax': 1 }; $.ajax( { type: 'POST', url: CAT_ADMIN_URL + '/pages/ajax_reorder.php', dataType: 'json', data: dates, cache: false, beforeSend: function( data ) { data.process = set_activity( 'Reorder pages' ); }, success: function( data, textStatus, jqXHR ) { var current = $(this); $('.popup').dialog('destroy').remove(); element.children('span').removeClass('fc_page_loader'); if ( data.success === true ) { return_success( jqXHR.process, data.message ); current.slideUp(300, function() { current.remove(); }); } else { return_error( jqXHR.process , data.message ); } }, error: function(jqXHR, textStatus, errorThrown) { $('.popup').dialog('destroy').remove(); alert(textStatus + ': ' + errorThrown ); } }); } }); } element.find('.fc_page_tree_options_open').add('#fc_add_page button:reset').on( 'click', function(event) { event.preventDefault(); var current_button = $(this), form = $('#fc_add_page'); $('.page_tree_open_options').removeClass('page_tree_open_options'); if( current_button.is('input') || current_button.hasClass('fc_side_add') ) // If the add button is clicked { var dates = { '_cat_ajax': 1, 'parent_id': $('#fc_addPage_parent_page_id').val() }, link = CAT_ADMIN_URL + '/pages/ajax_get_dropdown.php'; $('#fc_addPage_keywords').val(''); form.find('.fc_restorePageOnly, .fc_changePageOnly').hide(); form.find('nav, ul, .fc_addPageOnly').show(); } else if( current_button.is('button:reset') ) // If the reset is clicked { var dates = { '_cat_ajax': 1 }, link = CAT_ADMIN_URL + '/pages/ajax_get_dropdown.php'; $('#fc_addPage_keywords').val(''); form.find('.fc_restorePageOnly, .fc_changePageOnly').hide(); form.find('nav, ul, .fc_addPageOnly').show(); } else { var page_id = current_button.closest('li').find('input').val(), dates = { 'page_id' : page_id, '_cat_ajax': 1 }, link = CAT_ADMIN_URL + '/pages/ajax_page_settings.php'; current_button.closest('li').addClass('page_tree_open_options'); form.find('.fc_restorePageOnly, .fc_addPageOnly').hide(); form.find('nav, ul, .fc_changePageOnly').show(); } $.ajax( { type: 'POST', url: link, dataType: 'json', data: dates, cache: false, beforeSend: function( data ) { $('#fc_addPage_keywords_ul').remove(); if ( $('#fc_add_page').is(':visible') ) { $('#fc_add_page').stop().animate({width: 'toggle'}, 200); } }, success: function( data, textStatus, jqXHR ) { console.log(data); var form = $('#fc_add_page'), option = ''; if ( data.visibility == 'deleted' ) { form.find('nav, ul, .fc_changePageOnly, .fc_addPageOnly').hide(); form.find('.fc_restorePageOnly').show(); } else { // handle empty parent list (no pages available) if( data.parent_list !== null ) { $.each(data.parent_list, function(index, value) { option = option + ''; }); } var newSelect = $('#fc_addPage_parent').html( option ); if ( typeof data.parent_id !== 'undefined' && data.parent_id !== '' ) { newSelect.children('option').prop('selected', false) .filter('option[value="' + data.parent_id + '"]').prop('selected', true); } else { $('#fc_addPage_parent option').prop('selected', false) .filter('option[value="' + data.parent + '"]').prop('selected', true); } // Set textfields $('#fc_addPage_title').val(data.menu_title); $('#fc_addPage_page_title').val(data.page_title); $('#fc_addPage_description').val(data.description); $('#fc_addPage_keywords').val(data.keywords); $('#fc_addPage_page_link').val(data.short_link); // Set selectfields $('#fc_addPage_menu option').prop('selected', false) .filter('option[value="' + data.menu + '"]').prop('selected', true); $('#fc_addPage_target option').prop('selected', false) .filter('option[value="' + data.target + '"]').prop('selected', true); // template variants $("#fc_default_template_variant").empty(); if( $(data.variants).size() > 0 ) { $.each(data.variants, function(index, value) { $("