luci-mod-system: startup.js: disable action buttons on insufficient ACLs
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This commit is contained in:
parent
74e8fb0c8e
commit
e822382a98
1 changed files with 10 additions and 6 deletions
|
@ -4,6 +4,8 @@
|
||||||
'require fs';
|
'require fs';
|
||||||
'require ui';
|
'require ui';
|
||||||
|
|
||||||
|
var isReadonlyView = !L.hasViewPermission() || null;
|
||||||
|
|
||||||
return view.extend({
|
return view.extend({
|
||||||
callInitList: rpc.declare({
|
callInitList: rpc.declare({
|
||||||
object: 'luci',
|
object: 'luci',
|
||||||
|
@ -59,7 +61,8 @@ return view.extend({
|
||||||
renderEnableDisable: function(init) {
|
renderEnableDisable: function(init) {
|
||||||
return E('button', {
|
return E('button', {
|
||||||
class: 'btn cbi-button-%s'.format(init.enabled ? 'positive' : 'negative'),
|
class: 'btn cbi-button-%s'.format(init.enabled ? 'positive' : 'negative'),
|
||||||
click: ui.createHandlerFn(this, 'handleEnableDisable', init.name, init.enabled)
|
click: ui.createHandlerFn(this, 'handleEnableDisable', init.name, init.enabled),
|
||||||
|
disabled: isReadonlyView
|
||||||
}, init.enabled ? _('Enabled') : _('Disabled'));
|
}, init.enabled ? _('Enabled') : _('Disabled'));
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -93,9 +96,9 @@ return view.extend({
|
||||||
list[i].name,
|
list[i].name,
|
||||||
E('div', [
|
E('div', [
|
||||||
this.renderEnableDisable(list[i]),
|
this.renderEnableDisable(list[i]),
|
||||||
E('button', { 'class': 'btn cbi-button-action', 'click': ui.createHandlerFn(this, 'handleAction', list[i].name, 'start') }, _('Start')),
|
E('button', { 'class': 'btn cbi-button-action', 'click': ui.createHandlerFn(this, 'handleAction', list[i].name, 'start'), 'disabled': isReadonlyView }, _('Start')),
|
||||||
E('button', { 'class': 'btn cbi-button-action', 'click': ui.createHandlerFn(this, 'handleAction', list[i].name, 'restart') }, _('Restart')),
|
E('button', { 'class': 'btn cbi-button-action', 'click': ui.createHandlerFn(this, 'handleAction', list[i].name, 'restart'), 'disabled': isReadonlyView }, _('Restart')),
|
||||||
E('button', { 'class': 'btn cbi-button-action', 'click': ui.createHandlerFn(this, 'handleAction', list[i].name, 'stop') }, _('Stop'))
|
E('button', { 'class': 'btn cbi-button-action', 'click': ui.createHandlerFn(this, 'handleAction', list[i].name, 'stop'), 'disabled': isReadonlyView }, _('Stop'))
|
||||||
])
|
])
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
@ -111,11 +114,12 @@ return view.extend({
|
||||||
]),
|
]),
|
||||||
E('div', { 'data-tab': 'rc', 'data-tab-title': _('Local Startup') }, [
|
E('div', { 'data-tab': 'rc', 'data-tab-title': _('Local Startup') }, [
|
||||||
E('p', {}, _('This is the content of /etc/rc.local. Insert your own commands here (in front of \'exit 0\') to execute them at the end of the boot process.')),
|
E('p', {}, _('This is the content of /etc/rc.local. Insert your own commands here (in front of \'exit 0\') to execute them at the end of the boot process.')),
|
||||||
E('p', {}, E('textarea', { 'style': 'width:100%', 'rows': 20 }, [ (rcLocal != null ? rcLocal : '') ])),
|
E('p', {}, E('textarea', { 'style': 'width:100%', 'rows': 20, 'disabled': isReadonlyView }, [ (rcLocal != null ? rcLocal : '') ])),
|
||||||
E('div', { 'class': 'cbi-page-actions' }, [
|
E('div', { 'class': 'cbi-page-actions' }, [
|
||||||
E('button', {
|
E('button', {
|
||||||
'class': 'btn cbi-button-save',
|
'class': 'btn cbi-button-save',
|
||||||
'click': ui.createHandlerFn(this, 'handleRcLocalSave')
|
'click': ui.createHandlerFn(this, 'handleRcLocalSave'),
|
||||||
|
'disabled': isReadonlyView
|
||||||
}, _('Save'))
|
}, _('Save'))
|
||||||
])
|
])
|
||||||
])
|
])
|
||||||
|
|
Loading…
Reference in a new issue