;(function ( GFRoutingSetting, $, undefined ) {
"use strict";
// Create the defaults once
var pluginName = "gfRoutingSetting",
defaults = {
prefix: "",
allowMultiple: true,
imagesURL: "",
operatorStrings: {"is":"is","isnot":"isNot", ">":"greaterThan", "<":"lessThan", "contains":"contains", "starts_with":"startsWith", "ends_with":"endsWith"},
items: [ {
target: '',
fieldId: '0',
operator: 'is',
value: '',
type: '',
} ],
callbacks: {
addNewTarget: function() { },
header: function() { return ' ';}
}
};
// The plugin constructor
function Plugin( element, options ) {
this.element = element;
this.$element = $(element);
this.options = $.extend( true, {}, defaults, options) ;
this.prefix = options.prefix;
this.settings = options.settings;
this.accounts = options.accounts;
this._defaults = defaults;
this._name = pluginName;
this.init();
}
Plugin.prototype = {
init: function() {
var t = this;
var routingsMarkup, headerMarkup;
headerMarkup = this.getHeaderMarkup();
routingsMarkup = 'Assign To Condition
'.format(gf_vars.baseUrl),
removeButtonMarkup: '
'.format(gf_vars.baseUrl),
callbacks: {
save: function( obj, data ) {
$('#' + t.options.fieldId).val( $.toJSON( data ) );
},
beforeAdd: function( obj, $elem, item){
var $target = $elem.find('.gform-routing-target');
$target.val(item.target);
var $field = $elem.find('.gform-routing-field').first();
$field.value = item.fieldId;
t.changeField($field);
var $operator = $elem.find('.gform-routing-operator').first();
$operator.value = item.operator;
t.changeOperator($operator);
var $value = $elem.find('.gform-routing-value');
$value.val(item.value);
},
}
})
.on('change', '.gform-routing-field', function(e){
t.changeField(this);
})
.on('click', '.gform-no-filters', function(e){
var $this = $(this);
var $row = $this.find('.gform-routing');
if($row.length == 0){
t.addNewRouting(this);
}
$this.remove();
e.preventDefault();
})
.on('change', '.gform-routing-operator', function(){
t.changeOperator(this);
});
this.$element.append($routings);
/*
if (typeof filters == 'undefined' || filters.length == 0){
t.displayNoRoutingsMessage();
return;
}
t.$element.find(".gform-routing-field").each(function (i) {
var fieldId = filters[i].field;
$(this).val(fieldId);
t.changeField(this);
});
t.$element.find(".gform-routing-operator").each(function (i) {
var operator = filters[i].operator;
$(this).val(operator);
t.changeOperator(this, this.value);
});
t.$element.find(".gform-routing-value").each(function (i) {
var value = filters[i].value;
$(this).val(value);
$(this).change();
});
var i;
for (i = 0; i < filters.length; i++) {
t.$element.find(".gform-routings").append(this.getNewRoutingRow(filters[i].routeId));
}
*/
},
getHeaderMarkup: function() {
var header = this.options.callbacks.header( this, '' );
return header;
},
getNewRoutingRow: function () {
var r = [];
r.push( '