/*
* Copyright (c) Codiad & daeks, distributed
* as-is and without warranty under the MIT License. See
* [root]/license.txt for more. This information must remain intact.
*/
(function (global, $) {
var codiad = global.codiad,
scripts= document.getElementsByTagName('script'),
path = scripts[scripts.length-1].src.split('?')[0],
curpath = path.split('/').slice(0, -1).join('/')+'/';
$(window)
.load(function() {
codiad.macro.init();
});
codiad.macro = {
controller: curpath + 'controller.php',
dialog: curpath + 'dialog.php',
//////////////////////////////////////////////////////////////////
// Initilization
//////////////////////////////////////////////////////////////////
init: function () {
var _this = this;
$.get(_this.controller + '?action=init', function(data) {
var response = jQuery.parseJSON(data);
var buffer = [];
jQuery.each(response, function(i, val) {
if(val['t'] == 'context-menu') {
buffer.push(val['a']);
}
});
if (buffer.indexOf('both')) {
$('#context-menu').append('
');
} else {
if (buffer.indexOf('root-only') !== -1) {
$('#context-menu').append('
');
}
if (buffer.indexOf('directory-only') !== -1) {
$('#context-menu').append('
');
}
if (buffer.indexOf('file-only') !== -1) {
$('#context-menu').append('
');
}
}
jQuery.each(response, function(i, val) {
if(val['t'] == 'context-menu') {
var macro = ''+val['n']+'';
$('#'+val['t']).append(macro);
}
if(val['t'] == 'sb-right-content') {
var macro = ''+val['n']+'';
$('.'+val['t']).prepend(macro);
}
});
});
},
//////////////////////////////////////////////////////////////////
// Config
//////////////////////////////////////////////////////////////////
config: function () {
var _this = this;
$('#modal-content form')
.die('submit'); // Prevent form bubbling
codiad.modal.load(850, this.dialog + '?action=config');
},
//////////////////////////////////////////////////////////////////
// Add
//////////////////////////////////////////////////////////////////
add: function () {
var rowid = parseInt($('#macrocount').val())+1;
var newcommand = ' | | | | | |
';
$('#macrolist').append(newcommand);
$('.macro-wrapper').scrollTop(1000000);
$('#macrocount').val(rowid);
},
//////////////////////////////////////////////////////////////////
// Del
//////////////////////////////////////////////////////////////////
remove: function (id) {
$('#l' + id).remove();
},
//////////////////////////////////////////////////////////////////
// Save
//////////////////////////////////////////////////////////////////
save: function () {
var _this = this;
var formData = {'n[]' : [], 'd[]' : [], 'a[]' : [], 't[]' : [], 'i[]' : [], 'c[]' : []};
$("#macrolist tr").each(function(i, tr) {
$this = $(this)
var rowid = $this.find("input#rowid").val();
formData['n[]'].push($this.find("input#n"+rowid).val());
formData['d[]'].push($this.find("select#d"+rowid).val());
formData['a[]'].push($this.find("select#a"+rowid).val());
formData['i[]'].push($this.find("input#i"+rowid).val());
formData['t[]'].push($this.find("select#t"+rowid).val());
formData['c[]'].push($this.find("input#c"+rowid).val());
});
$.get(this.controller+'?action=save', formData, function(data){
var response = codiad.jsend.parse(data);
if (response != 'error') {
window.location.reload();
} else {
codiad.message.error('Save failed');
}
});
},
//////////////////////////////////////////////////////////////////
// Save
//////////////////////////////////////////////////////////////////
execute: function (id, daemon, path) {
var _this = this;
if(daemon) {
$.get(_this.controller + '?action=execute&id=' + id + '&path=' + path, function(data){
var response = codiad.jsend.parse(data);
if (response != 'error') {
codiad.message.success('Macro executed');
} else {
codiad.message.error('Save failed');
}
});
} else {
$('#modal-content form')
.die('submit'); // Prevent form bubbling
codiad.modal.load(850, this.dialog + '?action=execute&id=' + id + '&path=' + path);
}
}
};
})(this, jQuery);