You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
202 lines
6.4 KiB
JavaScript
202 lines
6.4 KiB
JavaScript
'use strict';
|
|
'require view';
|
|
'require fs';
|
|
'require uci';
|
|
'require ui';
|
|
'require form';
|
|
|
|
return view.extend({
|
|
// handleSaveApply: null,
|
|
// handleSave: null,
|
|
// handleReset: null,
|
|
|
|
load: function() {
|
|
return Promise.all([
|
|
L.resolveDefault(fs.read('/var/tinyfilemanager/releaseslist'), null),
|
|
L.resolveDefault(fs.stat('/usr/libexec/tinyfilemanager-update'), {}),
|
|
L.resolveDefault(fs.stat('/etc/nginx/conf.d/php.locations'), {}),
|
|
uci.load('tinyfilemanager'),
|
|
]);
|
|
},
|
|
|
|
render: function(res) {
|
|
var releaseslist = res[0] ? res[0].trim().split("\n") : [],
|
|
has_location = res[2].path,
|
|
pkgversion = '2.5.3';
|
|
|
|
var m, s, o;
|
|
|
|
m = new form.Map('tinyfilemanager');
|
|
|
|
s = m.section(form.TypedSection, 'main');
|
|
s.anonymous = true;
|
|
|
|
o = s.option(form.Button, '_reload', _('Reload') + ' tinyfilemanager');
|
|
o.inputtitle = _('Reload');
|
|
o.inputstyle = 'apply';
|
|
o.onclick = function() {
|
|
return fs.exec('/etc/init.d/tinyfilemanager', ['reload'])
|
|
.catch(function(e) { ui.addNotification(null, E('p', e.message), 'error') });
|
|
};
|
|
if (! has_location)
|
|
o.description = _('To enable SSL support, you may need to install <b>%s</b><br/>').format(['php-nginx']);
|
|
|
|
o = s.option(form.Flag, 'use_auth', _('Enable Authentication'));
|
|
o.rmempty = false;
|
|
|
|
o = s.option(form.DynamicList, 'auth_users', _('Login user name and passwd hash'),
|
|
_('You can generate new passwd in <b>File Manager -> Admin -> Help -> Generate new</b> or <a href="%s" target="_blank"><b>Here</b></a>.').format('https://tinyfilemanager.github.io/docs/pwd.html'));
|
|
|
|
o.datatype = "list(string)";
|
|
o.placeholder = 'user:$2y$10$cFk8K5VQJr...';
|
|
o.default = 'admin:$2y$10$BewzfQXrlnUihprEgGt7ROMB9NigZcZkkwssIRYznF9fwMuObIZoa';
|
|
o.rmempty = false;
|
|
o.retain = true;
|
|
o.depends('use_auth', '1');
|
|
|
|
o = s.option(form.DynamicList, 'readonly_users', _('Readonly users'));
|
|
o.datatype = "list(string)";
|
|
o.placeholder = 'user';
|
|
o.default = 'user';
|
|
o.rmempty = false;
|
|
o.retain = true;
|
|
o.depends('use_auth', '1');
|
|
|
|
o = s.option(form.Flag, 'global_readonly', _('Global Readonly'));
|
|
o.default = o.disabled;
|
|
o.rmempty = false;
|
|
|
|
o = s.option(form.Value, 'root_path', _('Home path'));
|
|
o.datatype = 'directory';
|
|
o.placeholder = '/var';
|
|
o.optional = true;
|
|
o.rmempty = true;
|
|
|
|
o = s.option(form.ListValue, 'date_format', _('Date format'));
|
|
o.value('d.m.o', _('DD.MM.YYYY'));
|
|
o.value('d-m-o', _('DD-MM-YYYY'));
|
|
o.value('d/m/o', _('DD/MM/YYYY'));
|
|
o.value('j.n.o', _('D.M.YYYY'));
|
|
o.value('j-n-o', _('D-M-YYYY'));
|
|
o.value('j/n/o', _('D/M/YYYY'));
|
|
o.value('o.m.d', _('YYYY.MM.DD'));
|
|
o.value('o-m-d', _('YYYY-MM-DD'));
|
|
o.value('o/m/d', _('YYYY/MM/DD'));
|
|
o.value('o.n.j', _('YYYY.M.D'));
|
|
o.value('o-n-j', _('YYYY-M-D'));
|
|
o.value('o/n/j', _('YYYY/M/D'));
|
|
o.default = 'd.m.o';
|
|
o.rmempty = false;
|
|
|
|
o = s.option(form.ListValue, 'time_format', _('Time format'));
|
|
o.value('H:i:s', _('HH:mm:ss'));
|
|
o.value('G:i:s', _('H:mm:ss'));
|
|
o.value('A h:i:s', _('TT hh:mm:ss'));
|
|
o.value('A g:i:s', _('TT h:mm:ss'));
|
|
o.value('h:i:s A', _('hh:mm:ss TT'));
|
|
o.value('g:i:s A', _('h:mm:ss TT'));
|
|
o.default = 'H:i:s';
|
|
o.rmempty = false;
|
|
|
|
o = s.option(form.Flag, 'show_second', _('Show seconds in time'));
|
|
o.default = o.disabled;
|
|
o.rmempty = false;
|
|
|
|
o = s.option(form.Value, 'favicon_path', _('Favicon path'));
|
|
o.datatype = 'file';
|
|
o.placeholder = '/etc/tinyfilemanager/favicon.png';
|
|
o.optional = true;
|
|
o.rmempty = false;
|
|
o.retain = true;
|
|
|
|
o = s.option(form.DynamicList, 'exclude_items', _('Exclude Files/Folders'));
|
|
o.datatype = "list(string)";
|
|
o.optional = true;
|
|
o.rmempty = false;
|
|
o.retain = true;
|
|
|
|
o = s.option(form.ListValue, 'online_viewer', _('Online Docs viewer'),
|
|
_('Requires running on open network'));
|
|
o.value('0', _('Disable'));
|
|
o.value('google', _('Google Docs'));
|
|
o.value('microsoft', _('Microsoft Web Apps'));
|
|
o.default = '0';
|
|
o.rmempty = false;
|
|
|
|
o = s.option(form.Value, 'max_upload_size', _('Max upload size (MBytes)'));
|
|
o.datatype = "and(uinteger,max(2048))";
|
|
o.placeholder = '3';
|
|
o.default = '25';
|
|
o.rmempty = false;
|
|
|
|
o = s.option(form.Flag, 'proxy_enabled', _('Enable proxy for updater'));
|
|
o.rmempty = true;
|
|
|
|
o = s.option(form.ListValue, 'proxy_protocol', _('Proxy Protocol'));
|
|
o.value('http', 'HTTP');
|
|
o.value('https', 'HTTPS');
|
|
o.value('socks5', 'SOCKS5');
|
|
o.value('socks5h', 'SOCKS5H');
|
|
o.default = 'socks5';
|
|
o.rmempty = false;
|
|
o.retain = true;
|
|
o.depends('proxy_enabled', '1');
|
|
|
|
o = s.option(form.Value, 'proxy_server', _('Proxy Server'));
|
|
o.datatype = "ipaddrport(1)";
|
|
o.placeholder = '192.168.1.10:1080';
|
|
o.rmempty = false;
|
|
o.retain = true;
|
|
o.depends('proxy_enabled', '1');
|
|
|
|
o = s.option(form.Button, '_check_update', _('Check update'));
|
|
o.inputtitle = _('Check update');
|
|
o.inputstyle = 'apply';
|
|
o.onclick = function() {
|
|
window.setTimeout(function() {
|
|
window.location = window.location.href.split('#')[0];
|
|
}, L.env.apply_display * 1000);
|
|
|
|
return fs.exec('/etc/init.d/tinyfilemanager', ['check'])
|
|
.catch(function(e) { ui.addNotification(null, E('p', e.message), 'error') });
|
|
};
|
|
|
|
if (releaseslist.length) {
|
|
o = s.option(form.ListValue, '_releaseslist', _('Releases list'));
|
|
//o.value(pkgversion);
|
|
o.default = pkgversion;
|
|
for (var i = 0; i < releaseslist.length; i++)
|
|
o.value(releaseslist[i]);
|
|
o.write = function() {};
|
|
|
|
o = s.option(form.Button, '_uprgade', _('Uprgade ') + _('Tiny File Manager'));
|
|
o.inputtitle = _('Uprgade');
|
|
o.inputstyle = 'apply';
|
|
o.onclick = L.bind(function(ev, section_id) {
|
|
var releasestag=document.getElementById('widget.' + this.cbid(section_id).match(/.+\./) + '_releaseslist').value;
|
|
//alert(releasestag);
|
|
return fs.exec('/usr/libexec/tinyfilemanager-update', [releasestag])
|
|
.catch(function(e) { ui.addNotification(null, E('p', e.message), 'error') });
|
|
}, o)
|
|
};
|
|
|
|
// s = m.section(form.TypedSection, '_updater');
|
|
// s.render = L.bind(function(view, section_id) {
|
|
// return E('div',{ 'class': 'cbi-section' }, [
|
|
// E('button', {
|
|
// 'class': 'cbi-button cbi-button-action',
|
|
// 'click': ui.createHandlerFn(view, 'handleQueryVendor')
|
|
// }, _('Check update')),
|
|
//
|
|
// E('select', { 'class': 'cbi-input-select' }, [
|
|
// E('option', { 'value': '2.4.7' }, '2.4.7'),
|
|
// E('option', { 'value': '2.4.3' }, '2.4.3'),
|
|
// E('option', { 'value': '2.4.1' }, '2.4.1')
|
|
// ])
|
|
// ]);
|
|
// }, o, this);
|
|
|
|
return m.render();
|
|
}
|
|
});
|