jQuery(function($){
$('#wpcomments-tabs').tabs();
var meta_removed;
//attaching hide and delete events for existing meta data
$("#file-meta-input-holder li").each(function(i, item){
$(item).find(".ui-icon-carat-2-n-s").click(function(e) {
$(item).find("table").slideToggle(300);
});
// for delete box
$(item).find(".ui-icon-trash").click(function(e) {
$("#remove-meta-confirm").dialog("open");
meta_removed = $(item);
});
});
$('.ui-icon-circle-triangle-n').click(function(e){
$("#file-meta-input-holder li").find('table').slideUp();
});
$('.ui-icon-circle-triangle-s').click(function(e){
$("#file-meta-input-holder li").find('table').slideDown();
});
$("#file-meta-input-holder").sortable({
revert : true,
stop : function(event, ui) {
// console.log(ui);
// only attach click event when dropped from right panel
if (ui.originalPosition.left > 20) {
$(ui.item).find(".ui-icon-carat-2-n-s").click(function(e) {
$(this).parent('.postbox').find("table").slideToggle(300);
});
// for delete box
$(ui.item).find(".ui-icon-trash").click(function(e) {
$("#remove-meta-confirm").dialog("open");
meta_removed = $(ui.item);
});
}
}
});
// =========== remove dialog ===========
$("#remove-meta-confirm").dialog({
resizable : false,
height : 160,
autoOpen : false,
modal : true,
buttons : {
"Remove" : function() {
$(this).dialog("close");
meta_removed.remove();
},
Cancel : function() {
$(this).dialog("close");
}
}
});
$("#nm-input-types li").draggable(
{
connectToSortable : "#file-meta-input-holder",
helper : "clone",
revert : "invalid",
start: function(event, ui){
$("#form-meta-setting ul li").find('table').slideUp();
ui.helper.height('auto');
},
stop : function(event, ui) {
ui.helper.width('100%');
ui.helper.height('auto');
$('.ui-sortable .ui-draggable').removeClass(
'input-type-item').find('div').addClass('postbox');
// now replacing the icons with arrow
$('.postbox').find('.ui-icon-arrow-4').removeClass(
'ui-icon-arrow-4').addClass('ui-icon-carat-2-n-s');
$('.postbox').find('.ui-icon-placehorder').removeClass(
'ui-icon-placehorder').addClass(
'ui-icon ui-icon-trash');
}
});
// ================== new meta form creator ===================
});
function update_options(options){
var opt = jQuery.parseJSON(options);
jQuery("#wpcomment-settigns-saving").html('
');
/*
* getting action from object
*/
/*
* extractElementData
* defined in nm-globals.js
*/
var data = extractElementData(opt);
if (data.bug) {
//jQuery("#reply_err").html('Red are required');
alert('bug here');
} else {
/*
* [1]
* TODO: change action name below with prefix plugin shortname_action_name
*/
data.action = 'wpcomments_save_settings';
jQuery.post(ajaxurl, data, function(resp) {
jQuery("#wpcomment-settigns-saving").html(resp);
// alert(resp);
window.location.reload(true);
});
}
/*jQuery.each(res, function(i, item){
alert(i);
});*/
}
/* ================ below script is for admin settings framework ============== */
// saving form meta
function save_file_meta() {
jQuery("#nm-saving-form").html('
');
var form_meta_values = new Array(); // {}; //Array();
jQuery("#file-meta-input-holder li")
.each(
function(i, item) {
var inner_array = {};
inner_array['type'] = jQuery(item).attr(
'data-inputtype');
jQuery(this)
.find('td.table-column-input')
.each(
function(i, col) {
var meta_input_type = jQuery(col)
.attr('data-type');
var meta_input_name = jQuery(col)
.attr('data-name');
var cb_value = '';
if (meta_input_type == 'checkbox') {
cb_value = (jQuery(this).find('input:checkbox[name="' + meta_input_name + '"]:checked').val() === undefined ? '' : jQuery(this).find('input:checkbox[name="' + meta_input_name + '"]:checked').val());
inner_array[meta_input_name] = cb_value;
} else if (meta_input_type == 'textarea') {
inner_array[meta_input_name] = jQuery(
this)
.find(
'textarea[name="'
+ meta_input_name
+ '"]')
.val();
} else if (meta_input_type == 'select') {
inner_array[meta_input_name] = jQuery(
this)
.find(
'select[name="'
+ meta_input_name
+ '"]')
.val();
} else if (meta_input_type == 'html-conditions') {
var all_conditions = {};
var the_conditions = new Array(); //{};
all_conditions['visibility'] = jQuery(
this)
.find(
'select[name="condition_visibility"]')
.val();
all_conditions['bound'] = jQuery(
this)
.find(
'select[name="condition_bound"]')
.val();
jQuery(this).find('div').each(function(i, div_box){
var the_rule = {};
the_rule['elements'] = jQuery(
this)
.find(
'select[name="condition_elements"]')
.val();
the_rule['operators'] = jQuery(
this)
.find(
'select[name="condition_operators"]')
.val();
the_rule['element_values'] = jQuery(
this)
.find(
'select[name="condition_element_values"]')
.val();
the_conditions.push(the_rule);
});
all_conditions['rules'] = the_conditions;
inner_array[meta_input_name] = all_conditions;
}else if (meta_input_type == 'pre-images') {
var all_preuploads = new Array();
jQuery(this).find('div.pre-upload-box table').each(function(i, preupload_box){
var pre_upload_obj = { link: jQuery(preupload_box).find('input[name="pre-upload-link"]').val(),
title: jQuery(preupload_box).find('input[name="pre-upload-title"]').val(),
price: jQuery(preupload_box).find('input[name="pre-upload-price"]').val(),};
all_preuploads.push(pre_upload_obj);
});
inner_array['images'] = all_preuploads;
} else {
inner_array[meta_input_name] = jQuery.trim(jQuery(this).find('input[name="'+ meta_input_name+ '"]').val())
// inner_array.push(temp);
}
});
form_meta_values.push(inner_array);
});
//console.log(form_meta_values); return false;
// ok data is collected, so send it to server now Huh?
do_action = 'wpcomments_save_file_meta';
var server_data = {
action : do_action,
file_meta : form_meta_values
}
jQuery.post(ajaxurl, server_data, function(resp) {
console.log(resp);
if (resp.status == 'success') {
jQuery("#nm-saving-form").html(resp.message);
window.location.reload(true);
}
}, 'json');
}
/*
* extract data from html elements
*/
function extractElementData(elements) {
var data = new Object;
data.bug = false;
jQuery.each(elements,
function(i, item) {
if(item.req == undefined || item.req == 0){
item.req = false;
}else{
item.req = true;
}
switch (item.type) {
case 'text':
data[i] = jQuery("input[name^='" + i + "']").val();
if(jQuery("input[name^='" + i + "']").val() == '' && item.req){
jQuery("input[name^='" + i + "']").css('border', 'red 1px solid');
data.bug = true;
/*alert(item.type+' is required');*/
}
break;
case 'select':
data[i] = jQuery("select[name^='" + i + "']").val();
if(jQuery("select[name^='" + i + "']").val() == '' && item.req){
jQuery("select[name^='" + i + "']").css('border', 'red 1px solid');
data.bug = true;
/*alert(item.type+' is required');*/
}
break;
case 'checkbox':
var checkedVals = [];
jQuery('input:checkbox[name^="' + i + '"]:checked').each(function() {
checkedVals.push(jQuery(this).val());
});
data[i] = (checkedVals.length == 0) ? null : checkedVals;
if (!jQuery("input:checkbox[name^='" + i + "']").is(':checked') && item.req){
jQuery("input:checkbox[name^='" + i + "']").parent('label').css('color', 'red');
data.bug = true;
/*alert(item.type+' is required');*/
}
break;
case 'radio':
data[i] = jQuery(
"input:radio[name^='" + i + "']:checked").val();
if (!jQuery("input:radio[name^='" + i + "']").is(':checked') && item.req){
jQuery("input:radio[name^='" + i + "']").css('border', 'red 1px solid');
data.bug = true;
alert(item.type+' is required');
}
break;
case 'textarea':
data[i] = jQuery("textarea[name^='" + i + "']").val();
if(jQuery("textarea[name^='" + i + "']").val() == '' && item.req){
jQuery("textarea[name^='" + i + "']").css('border', 'red 1px solid');
data.bug = true;
/*alert(item.type+' is required');*/
}
break;
}
});
return data;
}
/*
* function checking the checkbox for current value
* current value: json object
* @Author: Najeeb
* 13 Oct, 2012
*/
function setChecked(elementName, currentValue){
var elementCB = jQuery('input:checkbox[name="' + elementName + '"]');
var currentValues = jQuery.parseJSON(currentValue);
//console.log(currentValues);
jQuery.each(elementCB, function(i, item){
//console.log(item.id);
var current_cb_id = item.id;
jQuery.each(currentValues, function(i, item){
//console.log(item + jQuery("#"+current_cb_id).attr('value'));
if(jQuery("#"+current_cb_id).attr('value') == item){
jQuery("#"+current_cb_id).attr('checked', true);
}else{
if ( jQuery("#"+current_cb_id).attr('checked') == true)
jQuery("#"+current_cb_id).attr('checked', false);
}
//jQuery('input:checkbox[value="' + item + '"]').attr("checked", "checked");
});
});
}
/*
* function checking the RADIO for current value
* current value: single
* @Author: Najeeb
* 3 July, 2012
*/
function setCheckedRadio(elementName, currentValue) {
var elementRadio = jQuery('input:radio[name="' + elementName + '"]');
//console.log(elementRadio);
jQuery.each(elementRadio, function(i, item) {
//console.log(item.id);
var current_radio_id = item.id;
if (jQuery("#" + current_radio_id).attr('value') == currentValue) {
jQuery("#" + current_radio_id).attr('checked', true);
} else {
if (jQuery("#" + current_radio_id).attr('checked') == true)
jQuery("#" + current_radio_id).attr('checked', false);
}
});
}