/*********** MessageBox ****************/ // simply show info. Only close button function infoMessageBox(message, title){ $("#info-body").html(message); $("#info-title").html(title); $("#info-popup").modal('show'); } // modal with full control function messageBox(body, title, ok_text, close_text, callback){ $("#modal-body").html(body); $("#modal-title").html(title); if (ok_text) $("#modal-button").html(ok_text); if(close_text) $("#modal-close-button").html(close_text); $("#modal-button").unbind("click"); // remove existing events attached to this $("#modal-button").click(callback); $("#popup").modal("show"); } /*********** crontab actions ****************/ function deleteJob(_id){ // TODO fix this. pass callback properly messageBox("

Do you want to delete this Job?

", "Confirm delete", null, null, function(){ $.post(routes.remove, {_id: _id}, function(){ location.reload(); }); }); } function stopJob(_id){ messageBox("

Do you want to stop this Job?

", "Confirm stop job", null, null, function(){ $.post(routes.stop, {_id: _id}, function(){ location.reload(); }); }); } function startJob(_id){ messageBox("

Do you want to start this Job?

", "Confirm start job", null, null, function(){ $.post(routes.start, {_id: _id}, function(){ location.reload(); }); }); } function setCrontab(){ messageBox("

Do you want to set the crontab file?

", "Confirm crontab setup", null, null, function(){ $.get(routes.crontab, {}, function(){ // TODO show only if success infoMessageBox("Successfuly set crontab file!","Information"); }); }); } function editJob(_id){ var job = null; crontabs.forEach(function(crontab){ if(crontab._id == _id) job = crontab; }); if(job){ $("#job").modal("show"); $("#job-name").val(job.name); $("#job-command").val(job.command); // if macro not used if(job.schedule.indexOf("@") != 0){ var components = job.schedule.split(" "); $("#job-minute").val(components[0]); $("#job-hour").val(components[1]); $("#job-day").val(components[2]); $("#job-month").val(components[3]); $("#job-week").val(components[4]); } schedule = job.schedule; job_command = job.command; console.log(job.logging) if (job.logging && job.logging != "false") $("#job-logging").prop("checked", true); job_string(); } $("#job-save").unbind("click"); // remove existing events attached to this $("#job-save").click(function(){ // TODO good old boring validations $.post(routes.save, {name: $("#job-name").val(), command: job_command , schedule: schedule, _id: _id, logging: $("#job-logging").prop("checked")}, function(){ location.reload(); }) }); } function newJob(){ schedule = "" job_command = "" $("#job-minute").val("*"); $("#job-hour").val("*"); $("#job-day").val("*"); $("#job-month").val("*"); $("#job-week").val("*"); $("#job").modal("show"); $("#job-name").val(""); $("#job-command").val(""); job_string(); $("#job-save").unbind("click"); // remove existing events attached to this $("#job-save").click(function(){ // TODO good old boring validations $.post(routes.save, {name: $("#job-name").val(), command: job_command , schedule: schedule, _id: -1, logging: $("#job-logging").prop("checked")}, function(){ location.reload(); }) }); } function doBackup(){ messageBox("

Do you want to take backup?

", "Confirm backup", null, null, function(){ $.get(routes.backup, {}, function(){ location.reload(); }); }); } function delete_backup(db_name){ messageBox("

Do you want to delete this backup?

", "Confirm delete", null, null, function(){ $.get(routes.delete_backup, {db: db_name}, function(){ location = routes.root; }); }); } function restore_backup(db_name){ messageBox("

Do you want to restore this backup?

", "Confirm restore", null, null, function(){ $.get(routes.restore_backup, {db: db_name}, function(){ location = routes.root; }); }); } function import_db(){ messageBox("

Do you want to import crontab?
NOTE: It is recommended to take a backup before this.

", "Confirm import from crontab", null, null, function(){ $('#import_file').click(); }); } // script corresponding to job popup management var schedule = ""; var job_command = ""; function job_string(){ $("#job-string").val(schedule + " " + job_command); return schedule + " " + job_command; } function set_schedule(){ schedule = $("#job-minute").val() + " " +$("#job-hour").val() + " " +$("#job-day").val() + " " +$("#job-month").val() + " " +$("#job-week").val(); job_string(); } // popup management ends