luci2: implement Class.require() and Class.instantiate()
[project/luci2/ui.git] / luci2 / htdocs / luci2 / view / system.cron.js
1 L.ui.view.extend({
2         title: L.tr('Scheduled Tasks'),
3         description: L.tr('This is the system crontab in which scheduled tasks can be defined.'),
4
5         getCrontab: L.rpc.declare({
6                 object: 'luci2.system',
7                 method: 'crontab_get',
8                 expect: { data: '' }
9         }),
10
11         setCrontab: L.rpc.declare({
12                 object: 'luci2.system',
13                 method: 'crontab_set',
14                 params: [ 'data' ]
15         }),
16
17         execute: function() {
18                 var self = this;
19                 var allow_write = this.options.acls.cron;
20
21                 return self.getCrontab().then(function(data) {
22                         $('textarea').val(data).attr('disabled', !allow_write);
23                         $('input.cbi-button-save').attr('disabled', !allow_write).click(function() {
24                                 var data = ($('textarea').val() || '').replace(/\r/g, '').replace(/\n?$/, '\n');
25                                 L.ui.loading(true);
26                                 self.setCrontab(data).then(function() {
27                                         $('textarea').val(data);
28                                         L.ui.loading(false);
29                                 });
30                         });
31                 });
32         }
33 });