/* * 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);