'require rpc';
'require uci';
'require validation';
+'require fs';
var modalDiv = null,
tooltipDiv = null,
}, options);
},
- callFileStat: rpc.declare({
- 'object': 'file',
- 'method': 'stat',
- 'params': [ 'path' ],
- 'expect': { '': {} }
- }),
-
- callFileList: rpc.declare({
- 'object': 'file',
- 'method': 'list',
- 'params': [ 'path' ],
- 'expect': { 'entries': [] }
- }),
-
- callFileRemove: rpc.declare({
- 'object': 'file',
- 'method': 'remove',
- 'params': [ 'path' ]
- }),
-
bind: function(browserEl) {
this.node = browserEl;
},
render: function() {
- return Promise.resolve(this.value != null ? this.callFileStat(this.value) : null).then(L.bind(function(stat) {
+ return L.resolveDefault(this.value != null ? fs.stat(this.value) : null).then(L.bind(function(stat) {
var label;
if (L.isObject(stat) && stat.type != 'directory')
hidden.value = '';
}
- return this.callFileRemove(path).then(L.bind(function(parent, ev, rc) {
- if (rc == 0)
- return this.handleSelect(parent, null, ev);
- else if (rc == 6)
- alert(_('Delete permission denied'));
- else
- alert(_('Delete request failed: %d %s').format(rc, rpc.getStatusText(rc)));
-
- }, this, parent, ev));
+ return fs.remove(path).then(L.bind(function(parent, ev) {
+ return this.handleSelect(parent, null, ev);
+ }, this, parent, ev)).catch(function(err) {
+ alert(_('Delete request failed: %s').format(err.message));
+ });
}
},
if (fileStat == null) {
L.dom.content(ul, E('em', { 'class': 'spinning' }, _('Loading directory contents…')));
- this.callFileList(path).then(L.bind(this.renderListing, this, browser, path));
+ L.resolveDefault(fs.list(path), []).then(L.bind(this.renderListing, this, browser, path));
}
else {
var button = this.node.firstElementChild,
ev.preventDefault();
- return this.callFileList(path).then(L.bind(function(button, browser, path, list) {
+ return L.resolveDefault(fs.list(path), []).then(L.bind(function(button, browser, path, list) {
document.querySelectorAll('.cbi-filebrowser.open').forEach(function(browserEl) {
L.dom.findClassInstance(browserEl).handleCancel(ev);
});