Initial Commit
This commit is contained in:
146
Media/rules.js
Normal file
146
Media/rules.js
Normal file
@@ -0,0 +1,146 @@
|
||||
|
||||
var rules = {
|
||||
init: function() {
|
||||
var self = this;
|
||||
this.reloadRules();
|
||||
$('#form-add-rule').submit(function(){
|
||||
do_ajax('add', {type:$('#field-rule-select').val()}, function(data) {
|
||||
if (typeof data.error !== 'undefined')
|
||||
alert(data.error);
|
||||
else
|
||||
self.editRule(data.id);
|
||||
self.reloadRules();
|
||||
});
|
||||
return false;
|
||||
});
|
||||
},
|
||||
|
||||
showListing: function() {
|
||||
do_ajax('listing', {}, function(data) {
|
||||
var lines = data.split(/\r?\n|\r/).length + 2;
|
||||
$('#listing-code').show();
|
||||
$('#preview-code').hide();
|
||||
$('#listing-code textarea').html(data).attr('rows', lines);
|
||||
});
|
||||
},
|
||||
|
||||
hideListing: function() {
|
||||
$('#listing-code').hide();
|
||||
$('#preview-code').show();
|
||||
},
|
||||
|
||||
reloadRules: function() {
|
||||
var self = this;
|
||||
do_ajax('rules', {}, function(data) {
|
||||
$('#preview-code').html(data);
|
||||
$('.action-delete').click(function(){
|
||||
return confirm('Delete?');
|
||||
});
|
||||
$('#rule-list').disableSelection().sortable({
|
||||
stop: function() {
|
||||
self.updateOrder();
|
||||
}
|
||||
});
|
||||
$('.rule-actions').hover(function(){
|
||||
$('#rule-list').sortable( "option", "disabled", true );
|
||||
}, function(){
|
||||
$('#rule-list').sortable( "option", "disabled", false );
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
updateOrder: function(e, ui) {
|
||||
var self = this;
|
||||
$('#rule-list').sortable( "option", "disabled", true );
|
||||
$('.rule-actions').remove();
|
||||
var newOrder = [];
|
||||
$('#rule-list .rule').each(function(){
|
||||
newOrder.push($(this).data('rule-id'));
|
||||
});
|
||||
do_ajax('updateOrder', {order: newOrder}, function(data) {
|
||||
self.reloadRules();
|
||||
});
|
||||
},
|
||||
|
||||
editRule: function(id){
|
||||
var self = this;
|
||||
do_ajax('edit', {id: id}, function(data) {
|
||||
$('#rule-edit').html(data);
|
||||
self.prepareForm();
|
||||
$('.tooltip').tooltipster({
|
||||
position: 'top-right'
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
prepareForm: function(){
|
||||
var self = this;
|
||||
|
||||
$('#rule-edit .type-text').keyup(function(){
|
||||
var lines = $(this).val().split(/\r?\n|\r/).length;
|
||||
if (lines < 2)
|
||||
lines = 2;
|
||||
$(this).attr('rows', lines);
|
||||
}).keyup();
|
||||
$('#rule-edit .type-dualtext').keyup(function(){
|
||||
var textareas = $('.type-dualtext[name="'+$(this).attr('name')+'"]');
|
||||
|
||||
var lines = 2;
|
||||
|
||||
textareas.each(function(){
|
||||
var ta_lines = $(this).val().split(/\r?\n|\r/).length;
|
||||
if (ta_lines > lines)
|
||||
lines = ta_lines;
|
||||
});
|
||||
if (lines < 2)
|
||||
lines = 2;
|
||||
|
||||
$('.type-dualtext[name="'+$(this).attr('name')+'"]').attr('rows', lines);
|
||||
}).keyup();
|
||||
},
|
||||
|
||||
|
||||
cancelRuleEdit : function() {
|
||||
$('#rule-edit').html('');
|
||||
},
|
||||
|
||||
completeRuleEdit: function() {
|
||||
var self = this;
|
||||
var params = {};
|
||||
$('#rule-edit form input.multi').each(function(){
|
||||
params[$(this).attr('name')] = [];
|
||||
});
|
||||
$('#rule-edit form input[type!="submit"][type!="checkbox"], #rule-edit form textarea, #rule-edit form input:checked[type="checkbox"]').each(function(){
|
||||
var elem = $(this);
|
||||
var name = elem.attr('name');
|
||||
if (/^.*\[\]$/i.test(name)) {
|
||||
if (params[name])
|
||||
params[name].push(elem.val());
|
||||
else
|
||||
params[name] = [elem.val()];
|
||||
}
|
||||
else
|
||||
params[name] = elem.val();
|
||||
});
|
||||
do_ajax('save', params, function(data) {
|
||||
if (typeof data.error === 'undefined')
|
||||
{
|
||||
self.reloadRules();
|
||||
$('#rule-edit').html('');
|
||||
}
|
||||
else
|
||||
{
|
||||
alert(data.error);
|
||||
}
|
||||
});
|
||||
return false;
|
||||
},
|
||||
|
||||
deleteRule: function(id) {
|
||||
var self = this;
|
||||
this.cancelRuleEdit();
|
||||
do_ajax('delete', {id: id}, function() {
|
||||
self.reloadRules();
|
||||
});
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user