'use strict';
'require view';
'require form';
'require uci';

return view.extend({
	load: function() {
		return uci.load('nextcloud');
	},

	render: function() {
		var m, s, o;

		m = new form.Map('nextcloud', _('Nextcloud Settings'),
			_('Configure Nextcloud settings. Changes require service restart to take effect.'));

		s = m.section(form.TypedSection, 'nextcloud', _('General Settings'));
		s.anonymous = true;
		s.addremove = false;

		o = s.option(form.Flag, 'enabled', _('Enabled'),
			_('Enable Nextcloud'));
		o.default = '0';
		o.rmempty = false;

		o = s.option(form.Value, 'port', _('Web UI Port'),
			_('Port for the Nextcloud web interface'));
		o.datatype = 'port';
		o.default = '80';
		o.placeholder = '80';

		o = s.option(form.Value, 'data_path', _('Data Path'),
			_('Path to store Nextcloud data'));
		o.default = '/srv/nextcloud';
		o.placeholder = '/srv/nextcloud';

		o = s.option(form.Value, 'admin_user', _('Admin Username'),
			_('Administrator username for initial setup'));
		o.default = 'admin';
		o.placeholder = 'admin';

		o = s.option(form.Value, 'admin_password', _('Admin Password'),
			_('Administrator password for initial setup. Required for first install.'));
		o.password = true;
		o.placeholder = _('Enter password');

		o = s.option(form.Value, 'trusted_domains', _('Trusted Domains'),
			_('Comma-separated list of trusted domains (e.g., cloud.example.com,192.168.1.1)'));
		o.default = 'cloud.local';
		o.placeholder = 'cloud.local';

		o = s.option(form.Value, 'timezone', _('Timezone'),
			_('Timezone for the container'));
		o.default = 'UTC';
		o.placeholder = 'UTC';

		o = s.option(form.Value, 'image', _('Docker Image'),
			_('Docker image to use'));
		o.default = 'nextcloud:latest';
		o.placeholder = 'nextcloud:latest';

		return m.render();
	}
});
