| Current Path : /home/azimutno/www/administrator/components/com_uniform/assets/js/visualdesign/ |
| Current File : /home/azimutno/www/administrator/components/com_uniform/assets/js/visualdesign/itemlist.js |
//TODO: Translate this file to support multiple language.
/**
* @category Libraries
* @package Unifom
* @author JoomlaShine.com
* @copyright JoomlaShine.com
* @license GNU/GPL v2 http://www.gnu.org/licenses/gpl-2.0.html
* @version $Id: itemlist.js 19013 2012-11-28 04:48:47Z thailv $
* @link JoomlaShine.com
*/!function ($) {
/**
* JSNItemList class
*/
function JSNItemList(options) {
this.control = null;
this.options = $.extend({
name:'item-list',
allowOther:false,
listItems:[],
multipleCheck:false,
actionField:false,
actionMoneyField:false,
actionRecieptEmail:false,
classHidden:''
}, options);
this.options.value = $.toJSON(this.options.listItems);
this.template = '<div class="controls"><div class="jsn-buttonbar"><button id="items-list-edit" class="btn btn-small"><i class="icon-pencil"></i>Edit</button><button id="items-list-save" class="btn btn-small btn-primary"><i class="icon-ok"></i>Done</button></div>' +
'<ul class="jsn-items-list ui-sortable">' +
'{{each(i, val) listItems}}<li class="jsn-item ui-state-default jsn-iconbar-trigger">' +
'<label class="{{if multipleCheck==true || multipleCheck=="true"}}checkbox{{else}}radio{{/if}}"><input class="${classHidden}" type="{{if multipleCheck==true || multipleCheck=="true"}}checkbox{{else}}radio{{/if}}" value="${val.text}" name="item-list" {{if val.checked == "true" || val.checked == true}}checked{{/if}} /><span class="text-value">${val.text}</span></label>' +
'{{if actionField}}<div class="jsn-iconbar"><a class="element-action-money-add" href="javascript:void(0)"><span class="add-on" style="font-size: 16px;font-weight:bold;">$</span></a><a class="element-action-edit" href="javascript:void(0)"><i class="icon-lightning"></i></a></div>{{/if}}{{if actionMoneyField}}<div class="jsn-iconbar"><a class="element-action-money-add" href="javascript:void(0)"><span class="add-on" style="font-size: 16px;font-weight:bold;">$</span></a></div>{{/if}}{{if actionRecieptEmail}}<div class="jsn-iconbar"><a class="element-action-reciept-email" href="javascript:void(0)"><i class="icon-pencil"></i></a></div>{{/if}}' +
'</li>{{/each}}' +
'</ul>' +
'{{if allowOther}}<div class="other ui-sortable">' +
'<div class="jsn-item ui-state-default">' +
'<label class="{{if multipleCheck==true || multipleCheck=="true"}}checkbox{{else}}radio{{/if}}"><input class="${classHidden}" type="{{if multipleCheck==true || multipleCheck=="true"}}checkbox{{else}}radio{{/if}}" disabled="disabled" value="other" />Other</label>' +
'<input type="text" value="" disabled="disabled" />' +
'</div>' +
'</div>{{/if}}</div>' +
'<input type="hidden" name="${name}" value="json:${value}" id="${id}" />';
}
;
JSNItemList.prototype = {
/**
* Update list of items to hidden field
* @return void
*/
updateItems:function () {
var items = this.control.find('input[type="checkbox"],input[type="radio"]');
var listItems = [];
items.each(function (index, item) {
listItems.push({
text:item.value,
checked:item.checked
});
});
//this.updateAction();
$('#' + this.options.id).val('json:' + $.toJSON(listItems));
$('#' + this.options.id).trigger('change');
},
updateAction:function () {
var items = this.control.find('input[type="checkbox"],input[type="radio"]');
var listItems = {};
$(".jsn-action-active").remove();
items.each(function (index, item) {
var items = {}, checkActive = false;
items.showField = $(this).attr("action-show-field");
if (items.showField) {
items.showField = $.evalJSON(items.showField);
if (items.showField.length > 0) {
checkActive = true;
}
}
items.hideField = $(this).attr("action-hide-field");
if (items.hideField) {
items.hideField = $.evalJSON(items.hideField);
if (items.hideField.length > 0) {
checkActive = true;
}
}
listItems[item.value] = items;
if (checkActive) {
var jsnItem = $(item).parents(".jsn-item");
$(jsnItem).addClass("jsn-highlight");
} else {
var jsnItem = $(item).parents(".jsn-item");
$(jsnItem).removeClass("jsn-highlight");
}
});
$('#option-itemAction-hidden').val($.toJSON(listItems));
$('#option-itemAction-hidden').trigger('change');
},
getBoxStyle:function (element) {
var display = element.css('display')
if (display == 'none') {
element.css({
display:'block',
visibility:'hidden'
});
}
var style = {
width:element.width(),
height:element.height(),
outerHeight:element.outerHeight(),
outerWidth:element.outerWidth(),
offset:element.offset(),
margin:{
left:parseInt(element.css('margin-left')),
right:parseInt(element.css('margin-right')),
top:parseInt(element.css('margin-top')),
bottom:parseInt(element.css('margin-bottom'))
},
padding:{
left:parseInt(element.css('padding-left')),
right:parseInt(element.css('padding-right')),
top:parseInt(element.css('padding-top')),
bottom:parseInt(element.css('padding-bottom'))
}
};
element.css({
display:display,
visibility:'visible'
});
return style;
},
openActionSettings:function (btnInput) {
$(".jsn-lock-screen").remove();
$("body").append($("<div/>", {
"class":"jsn-lock-screen",
"style":"z-index: 999999; display: inline;"
}));
var self = this;
$("#visualdesign-options-values .jsn-items-list .jsn-item.ui-state-edit").removeClass("ui-state-edit");
$(btnInput).parents(".jsn-item").addClass("ui-state-edit");
$(".control-list-action").remove();
var container = $("#form-container"), listOptionPage = [], instance = container.data('visualdesign-instance'), content = "";
var serialize = instance.serialize(true);
if (serialize != "" && serialize != "[]") {
content = $.toJSON(serialize);
}
$(" ul.jsn-page-list li.page-items").each(function () {
listOptionPage.push([$(this).find("input").attr('data-id'), $(this).find("input").attr('value')]);
});
var dialog = $("<div/>", {
'class':'control-list-action jsn-bootstrap',
'id':"control-action"
}).append(
$("<div/>", {
"class":"popover left"
}).css("display", "block").append($("<div/>", {
"class":"arrow"
})).append($("<h3/>", {
"class":"popover-title",
"text":"Action settings"
})).append(
$("<div/>", {
"class":"popover-content"
}).append(
$("<div/>", {"class":"jsn-bgloading", "id":"action-loading"}).append(
$("<i/>", {"class":"jsn-icon32 jsn-icon-loading"})
)
).append(
$("<div/>", {"id":"accordion_content", "class":"hide"}).append(
$("<h3/>").append(
$("<a/>", {"href":"#"}).append("Show form field(s)")
)
).append(
$("<div/>", {"id":"jsn-action-show"})
).append(
$("<h3/>").append(
$("<a/>", {"href":"#"}).append("Hide form fields(s)")
)
).append(
$("<div/>", {"id":"jsn-action-hide"})
)
)
)
)
$(dialog).appendTo('body');
var elmStyle = self.getBoxStyle($(dialog).find(".popover")),
parentStyle = self.getBoxStyle($(btnInput)),
position = {};
position.left = parentStyle.offset.left - elmStyle.outerWidth;
position.top = parentStyle.offset.top - (elmStyle.outerHeight / 2) + (parentStyle.outerHeight / 2);
dialog.css(position).click(function (e) {
e.stopPropagation();
});
$.ajax({
type:"POST",
dataType:'json',
url:"index.php?option=com_uniform&view=form&task=form.savepage&tmpl=component&" + this.options.token + "=1",
data:{
form_id:$("#jform_form_id").val(),
form_content:content,
form_page_name:$("#form-design-header").attr('data-value'),
form_list_page:listOptionPage
},
success:function () {
var listOptionPage = [];
var _this = this;
var token = $("#form_token").val();
$(" ul.jsn-page-list li.page-items").each(function () {
listOptionPage.push([$(this).find("input").attr('data-id'), $(this).find("input").attr('value')]);
});
$.ajax({
type:"POST",
dataType:'json',
url:"index.php?option=com_uniform&view=form&task=form.loadsessionfield&tmpl=component&" + token + "=1",
data:{
form_id:$("#jform_form_id").val(),
form_page_name:$("#form-design-header").attr('data-value'),
form_list_page:listOptionPage
},
success:function (response) {
var listFieldShow = $("<ul/>", {"class":"jsn-items-list"}), listFieldHide = $("<ul/>", {"class":"jsn-items-list"});
if (response) {
var actionShowField = $("#visualdesign-options-values .jsn-items-list .ui-state-edit input[name=item-list]").attr("action-show-field"),
actionHideField = $("#visualdesign-options-values .jsn-items-list .ui-state-edit input[name=item-list]").attr("action-hide-field");
if (actionShowField) {
actionShowField = $.evalJSON(actionShowField);
}
if (actionHideField) {
actionHideField = $.evalJSON(actionHideField);
}
$.each(response, function (i, item) {
if (self.options.identify != item.options.identify) {
var checkedHideField = false, checkedShowField = false;
if (actionShowField) {
$.each(actionShowField, function (i, val) {
if (val == item.identify) {
checkedShowField = true;
}
})
}
if (actionHideField) {
$.each(actionHideField, function (i, val) {
if (val == item.identify) {
checkedHideField = true;
}
})
}
if (item.options.hideField) {
listFieldShow.append(
$("<li/>", {"class":"jsn-item jsn-iconbar-trigger"}).append(
$("<label/>", {"class":"checkbox"}).append(
$("<input/>", {"type":"checkbox", "value":item.identify}).prop("checked", checkedShowField)
).append(
item.options.label
)
)
)
} else {
listFieldHide.append(
$("<li/>", {"class":"jsn-item jsn-iconbar-trigger"}).append(
$("<label/>", {"class":"checkbox"}).append(
$("<input/>", {"type":"checkbox", "value":item.identify}).prop("checked", checkedHideField)
).append(
item.options.label
)
)
)
}
}
});
}
if ($(listFieldShow).html()) {
$(".control-list-action #jsn-action-show").append(listFieldShow);
} else {
$(".control-list-action #jsn-action-show").append($("<ul/>", {"class":"jsn-items-list"}).append(
$("<div/>", {"class":"ui-state-disabled"}).append(
self.options.language.JSN_UNIFORM_ALL_FORM_FIELD_ARE_DISPLAYED
)
));
}
if ($(listFieldHide).html()) {
$(".control-list-action #jsn-action-hide").append(listFieldHide);
} else {
$(".control-list-action #jsn-action-hide").append($("<ul/>", {"class":"jsn-items-list"}).append(
$("<div/>", {"class":"ui-state-disabled"}).append(
self.options.language.JSN_UNIFORM_ALL_FORM_FIELD_ARE_HIDDEN
)
));
}
$("#jsn-action-show input[type=checkbox]").change(function () {
var dataShowField = [];
$("#jsn-action-show input[type=checkbox]:checked").each(function () {
dataShowField.push($(this).val());
});
$("#visualdesign-options-values .jsn-items-list .ui-state-edit input[name=item-list]").attr("action-show-field", $.toJSON(dataShowField));
self.updateAction();
});
$("#jsn-action-hide input[type=checkbox]").change(function () {
var dataHideField = [];
$("#jsn-action-hide input[type=checkbox]:checked").each(function () {
dataHideField.push($(this).val());
});
$("#visualdesign-options-values .jsn-items-list .ui-state-edit input[name=item-list]").attr("action-hide-field", $.toJSON(dataHideField));
self.updateAction();
});
$(".control-list-action #accordion_content").accordion({
autoHeight:false
});
$("#action-loading").addClass("hide");
$("#accordion_content").removeClass("hide");
$(".jsn-lock-screen").remove();
$(document).click(function () {
dialog.remove();
$("#visualdesign-options-values .jsn-items-list .jsn-item.ui-state-edit").removeClass("ui-state-edit");
});
}
});
}
});
},
openActionAddMoney:function (btnInput) {
var self = this;
$("#visualdesign-options-values .jsn-items-list .jsn-item.ui-state-edit").removeClass("ui-state-edit");
$(btnInput).parents(".jsn-item").addClass("ui-state-edit");
$(".control-list-action").remove();
var priceVal = '',
qtyVal = '',
fieldPriceValue,
fieldQtyValue;
var fieldValue = $("#visualdesign-options-values .jsn-items-list .jsn-item.ui-state-edit").find("input").val();
if (fieldValue) {
fieldPriceValue = fieldValue.match(/\[PRICE:(.*?)\]/);
if(fieldPriceValue != null){
priceVal = fieldPriceValue[1];
}
fieldQtyValue = fieldValue.match(/\[QUANTITY:(.*?)\]/);
if(fieldQtyValue != null){
qtyVal = fieldQtyValue[1];
}
else
{
qtyVal = 1;
}
}
var dialog = $("<div/>", {
'class':'control-list-action jsn-bootstrap',
'id':"control-action",
'style':"min-height:140px;"
}).append(
$("<div/>", {
"class":"popover left"
}).css("display", "block").append($("<div/>", {
"class":"arrow"
})).append($("<h3/>", {
"class":"popover-title",
"text":"Add Price"
})).append(
$("<div/>", {
"class":"popover-content", "style":"height:70px"
}).append($("<div/>", {"id":"jsn-price","class":"control-group"})
.append($("<label />",{"text":"Price: ", "class":"control-label", "style":"float:left;width:65%"})
.append($("<div />", {"class":"controls"})
.append($("<div/>", {"class": "jsn-inline"})
.append($("<input />", {"id":"jsnprice","class": "jsn-input-xlarge-fluid", "type":"number","value":priceVal, "name":"value"})
)
)
)
)
.append($("<label />",{"text":"Quantity: ", "class":"control-label"})
.append($("<div />", {"class":"controls"})
.append($("<div/>", {"class": "jsn-inline"})
.append($("<input />", {"id":"jsnquantity","class": "jsn-input-small-fluid", "type":"number","value":qtyVal, "name":"value"})
)
)
)
)
)
)
)
$(dialog).appendTo('body');
var elmStyle = self.getBoxStyle($(dialog).find(".popover")),
parentStyle = self.getBoxStyle($(btnInput)),
position = {};
position.left = parentStyle.offset.left - elmStyle.outerWidth;
position.top = parentStyle.offset.top - (elmStyle.outerHeight / 2) + (parentStyle.outerHeight / 2);
dialog.css(position).click(function (e) {
e.stopPropagation();
});
$("#jsn-price input[id=jsnprice]").focus();
$("#jsn-price input[type=number]").keyup(function () {
var updatePrice, price, updateQty, quantity;
$("#jsn-price input[id=jsnprice]").each(function () {
price = $("#jsn-price input[id=jsnprice]").val();
if(price < 0)
{
price = 1;
}
price = parseFloat(price);
price = '[PRICE:'+price.toFixed(2)+']';
var itemVal = $(btnInput).parents('.jsn-item').find('input').val();
if(itemVal.match(/\[PRICE:(.*?)\]/) == null)
{
updatePrice = itemVal + ' ' + price;
}
else
{
updatePrice =itemVal.replace(/\[PRICE:(.*?)\]/, price);
}
$(btnInput).parents('.jsn-item').find('input').val(updatePrice);
$(btnInput).parents('.jsn-item').find('span.text-value').text(updatePrice);
});
$("#jsn-price input[id=jsnquantity]").each(function () {
quantity = $("#jsn-price input[id=jsnquantity]").val();
quantity = Math.floor(quantity)
if(quantity < 1)
{
quantity = 1;
}
quantity = '[QUANTITY:'+quantity+']';
var itemVal = $(btnInput).parents('.jsn-item').find('input').val();
if(itemVal.match(/\[QUANTITY:(.*?)\]/) == null)
{
updateQty = itemVal + ' ' + quantity;
}
else
{
updateQty =itemVal.replace(/\[QUANTITY:(.*?)\]/, quantity);
}
$(btnInput).parents('.jsn-item').find('input').val(updateQty);
$(btnInput).parents('.jsn-item').find('span.text-value').text(updateQty);
});
self.updateItems();
self.updateAction();
});
$.ajax({
type: "POST",
dataType: 'json',
url: "index.php?option=com_uniform&view=form&task=form.savepage&tmpl=component&" +this.options.token+ "=1",
success: function () {
$(document).click(function () {
dialog.remove();
$("#visualdesign-options-values .jsn-items-list .jsn-item.ui-state-edit").removeClass("ui-state-edit");
});
}
})
},
openActionRecieptEmail:function (btnInput) {
var self = this;
$("#visualdesign-options-values .jsn-items-list .jsn-item.ui-state-edit").removeClass("ui-state-edit");
$(btnInput).parents(".jsn-item").addClass("ui-state-edit");
$(".control-list-action").remove();
var emailValue = '';
var titleValue = '';
var fieldValue = $("#visualdesign-options-values .jsn-items-list .jsn-item.ui-state-edit").find("input").val();
if (fieldValue) {
//fieldValue = fieldValue.match(/\[EMAIL:(.*)\]/);
fieldValue = fieldValue.match(/^([^\[]*)\[EMAIL\:(.*)\]$/);
if(fieldValue != null){
emailValue = fieldValue[2].trim();
titleValue = fieldValue[1].trim();
}
}
var dialog = $("<div/>", {
'class':'control-list-action jsn-bootstrap',
'id':"control-action",
'style':"min-height:140px;"
}).append(
$("<div/>", {
"class":"popover left"
}).css("display", "block").append($("<div/>", {
"class":"arrow"
})).append($("<h3/>", {
"class":"popover-title",
"text":"Edit Recipient Email"
})).append(
$("<div/>", {
"class":"popover-content", "style":"height:110px"
}).append(
$("<div/>", {"id":"jsn-reciept-email","class":"control-group"}).append(
$("<label />",{"text":"Title: ", "class":"control-label"}).append(
$("<div />", {"class":"controls"}).append(
$("<div/>", {"class": "jsn-inline"}).append(
$("<input />", {"class": "jsn-input-medium-fluid", "type":"text","value":titleValue, "name":"title", "placeholder":"Doe John"})
)
)
).append(
$("<label />",{"text":"Email: ", "class":"control-label"}).append(
$("<div />", {"class":"controls"}).append(
$("<div/>", {"class": "jsn-inline"}).append(
$("<input />", {"class": "jsn-input-medium-fluid", "type":"email","value":emailValue, "name":"email", "placeholder":"example@domain.com"})
)
)
)
)
)
)
)
)
$(dialog).appendTo('body');
var elmStyle = self.getBoxStyle($(dialog).find(".popover")),
parentStyle = self.getBoxStyle($(btnInput)),
position = {};
position.left = parentStyle.offset.left - elmStyle.outerWidth;
position.top = parentStyle.offset.top - (elmStyle.outerHeight / 2) + (parentStyle.outerHeight / 2);
dialog.css(position).click(function (e) {
e.stopPropagation();
});
$("#jsn-reciept-email input").focus();
$("#jsn-reciept-email input").keyup(function () {
var updateEmail, updateTitle, emailTitle, emailRecepient;
$("#jsn-reciept-email input").each(function () {
emailTitle = $("#jsn-reciept-email input[name*='title']").val();
emailRecepient = $("#jsn-reciept-email input[name*='email']").val();
emailRecepient = '[EMAIL:'+emailRecepient+']';
if(emailTitle != null)
{
updateEmail = emailTitle + ' ' + emailRecepient;
}
$(btnInput).parents('.jsn-item').find('input').val(updateEmail);
$(btnInput).parents('.jsn-item').find('span.text-value').text(updateEmail);
self.updateItems();
});
});
$.ajax({
type: "POST",
dataType: 'json',
url: "index.php?option=com_uniform&view=form&task=form.savepage&tmpl=component&" +this.options.token+"=1",
success: function () {
$(document).click(function () {
dialog.remove();
$("#visualdesign-options-values .jsn-items-list .jsn-item.ui-state-edit").removeClass("ui-state-edit");
});
}
})
},
/**
* Register event handling for elements
* @return void
*/
addEvents:function () {
var self = this;
var listItems = [];
var itemChecked = [];
this.control.find('a.jsn-ic-move').click(function () {
return false;
});
this.control.find('ul.jsn-items-list input').click(function (e) {
e.stopPropagation();
});
this.control.find('input[type="checkbox"],input[type="radio"]').change(function () {
self.updateItems();
});
this.control.find(".element-action-money-add").click(function (e) {
self.openActionAddMoney($(this));
e.stopPropagation();
});
this.control.find(".element-action-edit").click(function (e) {
self.openActionSettings($(this));
e.stopPropagation();
});
this.control.find(".element-action-reciept-email").click(function (e) {
self.openActionRecieptEmail($(this));
e.stopPropagation();
});
this.control.find("#items-list-edit").click(function () {
$(this).hide();
listItems = [];
itemChecked = [];
self.control.find(".jsn-items-list .jsn-item").each(function () {
listItems.push($(this).find("input").val())
if ($(this).find("input").is(':checked')) {
itemChecked.push($(this).find("input:checked").val());
}
});
self.control.find(".jsn-items-list").hide().after(
$("<div/>", {
"id":"items-list-edit-content"
}).append(
$("<textarea/>", {
"class":"jsn-input-xxlarge-fluid",
"rows":"10",
"text":listItems.join("\r")
})));
self.control.find("#items-list-save").show();
self.control.find("#items-list-cancel").show();
self.control.find("#items-list-edit-content textarea").focus();
});
self.control.find("#items-list-save").click(function (e) {
var divItems = $(this).parent().parent();
var valueItems = divItems.find("#items-list-edit-content textarea").val().split("\n");
var classValue = self.options.multipleCheck ? "checkbox" : "radio";
var addedItems = [];
self.control.find(".jsn-items-list").html("");
$.each(valueItems, function (key, value) {
if (value && addedItems.indexOf(value) == -1) {
addedItems.push(value);
var inputItem = "";
if ($.inArray(value, itemChecked) != -1) {
if (self.options.multipleCheck) {
inputItem = $("<input/>", {
"type":"checkbox",
"checked":"true",
"class":self.classHidden,
"name":"item-list",
"value":value
});
} else {
inputItem = $("<input/>", {
"type":"radio",
"checked":"true",
"class":self.classHidden,
"name":"item-list",
"value":value
});
}
} else {
if (self.options.multipleCheck) {
inputItem = $("<input/>", {
"type":"checkbox",
"name":"item-list",
"class":self.classHidden,
"value":value
});
} else {
inputItem = $("<input/>", {
"type":"radio",
"class":self.classHidden,
"name":"item-list",
"value":value
});
}
}
if (self.options.actionField) {
self.control.find(".jsn-items-list").append(
$("<li/>", {
"class":"jsn-item ui-state-default jsn-iconbar-trigger"
}).append(
$("<label/>", {
"class":classValue
}).append(inputItem).append($("<span />",{"class":"text-value","text":value}))
).append(
$("<div/>", {"class":"jsn-iconbar"}).append(
$("<a/>", {"class":"element-action-money-add", href:"javascript:void(0)"}).append(
$("<span/>", {"class":"add-on", "style":"font-size: 16px;font-weight:bold;", "text":"$"})
).after(
$("<a/>", {"class":"element-action-edit", href:"javascript:void(0)"}).append(
$("<i/>", {"class":"icon-lightning"})
)
)
)
)
)
}
else if(self.options.actionMoneyField)
{
self.control.find(".jsn-items-list").append(
$("<li/>", {
"class":"jsn-item ui-state-default jsn-iconbar-trigger"
}).append(
$("<label/>", {
"class":classValue
}).append(inputItem).append($("<span />",{"class":"text-value","text":value}))
).append(
$("<div/>", {"class":"jsn-iconbar"}).append(
$("<a/>", {"class":"element-action-money-add", href:"javascript:void(0)"}).append(
$("<span/>", {"class":"add-on", "style":"font-size: 16px;font-weight:bold;", "text":"$"})
)
)
)
)
}
else if(self.options.actionRecieptEmail)
{
self.control.find(".jsn-items-list").append(
$("<li/>", {
"class":"jsn-item ui-state-default jsn-iconbar-trigger"
}).append(
$("<label/>", {
"class":classValue
}).append(inputItem).append($("<span />",{"class":"text-value","text":value}))
).append(
$("<div/>", {"class":"jsn-iconbar"}).append(
$("<a/>", {"class":"element-action-reciept-email", href:"javascript:void(0)"}).append(
$("<i/>", {"class":"icon-pencil"})
)
)
)
)
}
else
{
self.control.find(".jsn-items-list").append(
$("<li/>", {
"class":"jsn-item ui-state-default jsn-iconbar-trigger"
}).append(
$("<label/>", {
"class":classValue
}).append(inputItem).append($("<span />",{"class":"text-value","text":value}))
)
)
}
}
});
addedItems = [];
self.control.find(".jsn-items-list").show();
self.control.find("#items-list-save").hide();
self.control.find("#items-list-cancel").hide();
self.control.find("#items-list-edit").show();
self.control.find("#items-list-edit-content textarea").remove();
self.updateItems();
self.control.find('a.jsn-ic-move').click(function () {
return false;
});
self.control.find('ul.jsn-items-list input').click(function (e) {
e.stopPropagation();
});
self.control.find('input[type="checkbox"],input[type="radio"]').change(function () {
self.updateItems();
});
self.control.find(".element-action-money-add").click(function (e) {
self.openActionAddMoney($(this));
e.stopPropagation();
});
self.control.find(".element-action-edit").click(function (e) {
self.openActionSettings($(this));
e.stopPropagation();
});
self.control.find(".element-action-reciept-email").click(function (e) {
self.openActionRecieptEmail($(this));
e.stopPropagation();
});
var itemAction = $("#visualdesign-options-values #option-itemAction-hidden").val();
if (itemAction) {
itemAction = $.evalJSON(itemAction);
}
if (itemAction) {
var index = 1, listFieldAction = [], itemlist = [];
$.each(itemAction, function (i) {
listFieldAction.push(i);
});
$("#visualdesign-options-values .jsn-items-list .jsn-item input[name=item-list]").each(function () {
itemlist.push($(this).val());
});
$("#visualdesign-options-values .jsn-items-list .jsn-item input[name=item-list]").each(function () {
index++;
var inputItem = $(this), index2 = 1, tmpShowField = "", tmpHideField = "";
$.each(itemAction, function (i, item) {
index2++;
var valueInput = $(inputItem).val();
if (i == valueInput) {
$(inputItem).attr("action-show-field", $.toJSON(item.showField));
$(inputItem).attr("action-hide-field", $.toJSON(item.hideField));
}
else if (index == index2 && $.inArray(valueInput, listFieldAction) < 0 && $.inArray(i, itemlist) < 0) {
$(inputItem).attr("action-show-field", $.toJSON(item.showField));
$(inputItem).attr("action-hide-field", $.toJSON(item.hideField));
}
});
});
$("#visualdesign-options-values .jsn-items-list .jsn-item input[name=item-list]").each(function () {
var actionShowField = $(this).attr("action-show-field"), actionHideField = $(this).attr("action-hide-field"),checkAction = false;
if (actionShowField) {
actionShowField = $.evalJSON(actionShowField);
if(actionShowField && actionShowField.length > 0){
checkAction = true;
}
}
if (actionHideField) {
actionHideField = $.evalJSON(actionHideField);
if(actionHideField && actionHideField.length > 0){
checkAction = true;
}
}
if (checkAction) {
var jsnItem = $(this).parents(".jsn-item");
$(jsnItem).addClass("jsn-highlight");
} else {
var jsnItem = $(this).parents(".jsn-item");
$(jsnItem).removeClass("jsn-highlight");
}
});
self.updateAction();
}
});
},
/**
* Render UI for control
* @return void
*/
render:function () {
var self = this;
this.control = $.tmpl(this.template, this.options);
this.control.find('ul.jsn-items-list').sortable({
items:'li.jsn-item',
axis:'y',
forceHelperSize:true,
connectWith:'.jsn-item',
placeholder:'ui-state-highlight',
update:function () {
self.updateItems();
self.updateAction();
}
});
this.addEvents();
this.updateAction();
return this.control;
}
};
/**
* Register jQuery plugin
*/
$.itemList = function (options) {
var control = new JSNItemList(options);
return control.render();
};
}(jQuery);