; Dbuser.Cfg
[common]
	lcd = 'en'
	title = '301:Users'
	description = '469:Contains a user management system for administrators, operators and visitors'
	level = '60:70:90'
	viewwidth = '480'
	viewheight = '640'
	displayusing = 'datatable'
	formusing = 'popupform'
	table = 'dbuser'
	tabletype = ''
	orderby = 'c_username ASC'
	fieldsused = 'c_username,c_password,c_group,c_type,c_email,c_level,c_options,c_status,c_notes,c_lastmodified,c_whomodified,c_document,d_title,d_firstname,d_midname,d_lastname'
[fields]
	[fields:c_username]
	dbtype = 'string'
	title = '1:Username'
	defval = ''
	action = ''
	required = 'true'
	unique = 'true'
	[fields:c_password]
	dbtype = 'password'
	title = '2:Password'
	defval = ''
	action = ''
	required = 'true'
	unique = 'true'
	[fields:c_group]
	dbtype = 'string'
	title = '96:Group'
	defval = 'operator'
	action = ''
	required = 'true'
	unique = 'false'
	[fields:c_type]
	dbtype = 'string'
	title = '128:Type'
	defval = 'user'
	action = ''
	required = 'true'
	unique = 'false'
	[fields:c_email]
	dbtype = 'string'
	title = '95:Email Address'
	defval = ''
	action = ''
	required = 'false'
	unique = 'true'
	[fields:c_level]
	dbtype = 'number'
	title = '99:Level'
	defval = '20:20:20'
	action = ''
	required = 'true'
	unique = 'false'
	[fields:c_document]
	dbtype = 'json'
	title = '7:Content'
	defval = ''
	action = ''
	required = 'true'
	unique = 'false'
	[fields:c_options]
	dbtype = 'string'
	title = '31:Options'
	defval = ''
	action = ''
	required = 'false'
	unique = 'false'
	[fields:c_status]
	dbtype = 'string'
	title = '199:Current Status'
	defval = 'active'
	action = ''
	required = 'true'
	unique = 'false'
	[fields:c_lastmodified]
	dbtype = 'date'
	title = '198:Last Modified'
	defval = ''
	action = 'lastMod'
	required = 'true'
	unique = 'false'
	[fields:c_whomodified]
	dbtype = 'string'
	title = '201:Who modified'
	defval = ''
	action = 'whoMod'
	required = 'true'
	unique = 'false'
	[fields:c_notes]
	dbtype = 'string'
	title = '8:Notes'
	defval = 'No notes'
	action = ''
	required = 'false'
	unique = 'false'
	[fields:d_title]
	dbtype = 'string'
	title = '130:Title'
	defval = ''
	action = ''
	required = 'false'
	unique = 'false'
	[fields:d_firstname]
	dbtype = 'string'
	title = '211:First Name'
	defval = ''
	action = ''
	required = 'true'
	unique = 'false'
	[fields:d_midname]
	dbtype = 'string'
	title = '212:Middle Name'
	defval = ''
	action = ''
	required = 'false'
	unique = 'false'
	[fields:d_lastname]
	dbtype = 'string'
	title = '213:Last Name'
	defval = ''
	action = ''
	required = 'true'
	unique = 'false'
[generatekeys]
[datatable]
	; General options
	url = '/ajax/en/gettabledata/dbuser/'
	orderby = 'c_username ASC'
	search = ''
	; Table pagination and operational defaults
	[datatable:records]
	limit = 10
	end = 10
	[datatable:columns]
		[datatable:columns:id]
		field = 'id'
		title = '9999:Id'
		order = 'b'
		valign = 'top'
		[datatable:columns:c_username]
		field = 'c_username'
		title = '1:Username'
		valign = 'top'
		order = 'c'
		searchable = 'true'
		sortable = 'true'
		[datatable:columns:c_email]
		field = 'c_email'
		type = 'email'
		title = '95:Email address'
		valign = 'top'
		order = 'd'
		searchable = 'true'
		sortable = 'false'
		[datatable:columns:d_lastname]
		field = 'd_lastname'
		type = 'fullname'
		title = '471:Full name'
		valign = 'top'
		order = 'e'
		searchable = 'false'
		sortable = 'false'
		[datatable:columns:c_group]
		field = 'c_group'
		type = 'list'
		title = '96:Group'
		valign = 'top'
		order = 'g'
		searchable = 'true'
		sortable = 'false'
		list = 'usergroups'
		[datatable:columns:c_level]
		field = 'c_level'
		type = 'text'
		title = '99:Level'
		valign = 'top'
		order = 'h'
		class = 'nowrap'
		searchable = 'false'
		sortable = 'false'
		[datatable:columns:c_status]
		field = 'c_status'
		type = 'list'
		title = '199:Status'
		valign = 'top'
		order = 'j'
		searchable = 'false'
		sortable = 'false'
		list = 'userstatus'
	; Top buttons
	[datatable:topbuttons:addbutton]
	class = 'success'
	icon = 'plus'
	title = '100:Add'
	tooltip = '234:Add record'
	formtype = 'popupform'
	order = 'a'
	[datatable:topbuttons:reportbutton]
	class = 'primary'
	icon = 'flag-o'
	title = '287:Report'
	reporttype = 'popupreport'
	order = 'b'
	[datatable:topbuttons:utilbutton]
	class = 'default'
	icon = 'cogs'
	title = '70:Utilities'
	dropdown = true
	order = 'c'
	[datatable:topbuttons:utilbutton:submenu:changepassword]
	title = '90:Change password'
	type = 'changepassword'
	[datatable:topbuttons:utilbutton:submenu:changestatus]
	title = '501:Change status'
	type = 'changestatus'
	; Row Buttons
	[datatable:rowicons:editrecord]
	icon = 'pencil'
	formid = 'popupform'
	[datatable:rowicons:viewrecord]
	icon = 'eye'
	formid = 'popupform'
	[datatable:rowicons:deleterecord]
	icon = 'trash'
[form]
	type = 'popupform'
	title = ''
	instructions = ''
	[form:formheader]
	action = '/ajax/en/update/dbuser/'
	method = 'POST'
	enctype = 'multipart/form-data'
	name = 'dataform'
	id = 'dataform'
	class = 'form-horizontal'
[form:formfields]
; Hidden
	[form:formfields:id]
	v-model = 'id'
	type = 'hidden'
	defval = '0'
	display = 'iu'
	[form:formfields:c_lastmodified]
	v-model = 'c_lastmodified'
	type = 'hidden'
	defval = ''
	display = 'cu'
	[form:formfields:c_whomodified]
	v-model = 'c_whomodified'
	type = 'hidden'
	defval = 'admin'
	display = 'cu'
; Visible
	[form:formfields:instructions]
	type = 'rowtext'
	text = '9999:Complete all fields and press enter'
	order = 'a1'
	class = 'text-muted'
	[form:formfields:c_username]
	v-model = 'c_username'
	id = 'c_username'
	type = 'text'
	placeholder = '{fields.c_username.title}'
	label = '{fields.c_username.title}'
	class = 'isunique'
	style = 'width: 60%;'
	helptext = '9999:Between 5 and 12 characters all lowercase letters'
	required = 'required'
	minlength = '5'
	maxlength = '12'
	order = 'aa'
	display = 'c'
	autofocus = 'true'
	data-table = 'dbuser'
	data-tabletype = ''
	[form:formfields:c_password]
	v-model = 'c_password'
	type = 'password'
	label = '{fields.c_password.title}'
	helptext = '9999:Please enter a Password between 8 and 12 characters, containing letters, numbers and symbols'
	required = 'required'
	style = 'width:40%'
	data-hook = 'confirmpassword'
	minlength = '8'
	maxlength = '12'
	placeholder = '**********|x'
	order = 'ab'
	display = 'c'
	[form:formfields:c_group]
	v-model = 'c_group'
	type = 'select'
	listtype = 'dynamic'
	options = 'usergroups'
	optionclass = ''
	label = '{fields.c_group.title}'
	style = 'width: 50%;'
	order = 'ac'
	display = 'cu'
	defval = 'visitor'
	[form:formfields:c_email]
	v-model = 'c_email'
	type = 'text'
	subtype = 'email'
	placeholder = ' [email protected]|x'
	pricon = 'envelope-o'
	praction = ''
	label = '{fields.c_email.title}'
	helptext = '9999:Enter your main email address'
	class = 'isunique'
	style = 'width: 100%;'
	required = 'required'
	order = 'ad'
	display = 'cu'
	data-table = 'dbuser'
	data-tabletype = ''
	[form:formfields:c_level]
	v-model = 'c_level'
	id = 'c_level'
	type = 'level'
	label = '{fields.c_level.title}'
	helptext = '9999:Select the access level for read, write and delete records'
	required = 'required'
	defval = '20:20:20'
	order = 'ae'
	display = 'cu'
	[form:formfields:c_options]
	v-model = 'c_options'
	type = 'text'
	label = '{fields.c_options.title}'
	helptext = '9999:Enter additional attributes'
	; class = 'tagit'
	style = 'width: 100%;'
	data-role = 'tagsinput'
	order = 'af'
	display = 'cu'
	initialise = 'true'
	[form:formfields:c_status]
	v-model = 'c_status'
	type = 'radio'
	id = 'c_status'
	defval = 'approval'
	listtype = 'dynamic'
	options = 'userstatus'
	optionclass = ''
	label = '{fields.c_status.title}'
	order = 'ag'
	display = 'cu'
	[form:formfields:x_fullname]
	realflds = 'd_title|d_firstname|d_midname|d_lastname'
	;defval = ''
	type = 'fullname'
	label = '471:Full Name'
	helptext = '471:Enter your full name and title'
	required = 'required'
	order = 'ah'
	display = 'cu'
	; Use this field to test Rich Text
	[form:formfields:d_comments]
	v-model = 'd_comments'
	type = 'textarea'
	label = '{fields.d_comments.title}'
	helptext = '477:Enter important additional information related to your registration'
	style = 'width: 100%;'
	class = 'h60'
	order = 'aq'
	display = 'cu'
	; Notes
	[form:formfields:c_notes]
	v-model = 'c_notes'
	type = 'textarea'
	placeholder = '{fields.c_notes.title}'
	helptext = '8:Administrative Notes'
	label = '8:Notes'
	class = 'form-control h60'
	order = 'az'
	display = 'cu'
	; Buttons
	[form:buttons]
	[form:buttons:submit]
	type = 'button'
	class = 'btn-danger'
	title = '105:Submit'
	action = 'submitbutton'
	[form:buttons:preview]
	type = 'button'
	class = 'btn-success'
	title = '121:Preview'
	action = 'previewbutton'
	[form:buttons:reset]
	type = 'button'
	class = 'btn-warning'
	title = '122:Reset'
	action = 'resetbutton'
	[form:buttons:cancel]
	type = 'button'
	class = 'btn-danger'
	title = '136:Cancel'
	action = 'cancelbutton'
	; Form ends
[view]
	[view:viewfields:c_username]
	fld = 'c_username'
	label = '1:Username'
	type = 'text'
	order = 'aa'
	viewclass = 'bold'
	[view:viewfields:c_group]
	fld = 'c_group'
	label = '96:Group'
	type = 'list'
	list = 'usergroups'
	order = 'ab'
	[view:viewfields:c_status]
	fld = 'c_status'
	label = '199:Status'
	type = 'list'
	list = 'userstatus'
	order = 'ac'
	[view:viewfields:c_email]
	fld = 'c_email'
	label = '95:Email Address'
	type = 'email'
	order = 'ad'
	[view:viewfields:c_level]
	fld = 'c_level'
	label = '99:Level'
	type = 'text'
	order = 'ae'
	[view:viewfields:x_fullname]
	fld = 'd_firstname'
	label = '471:Full Name'
	type = 'fullname'
	order = 'af'
	[view:viewfields:d_comments]
	fld = 'd_comments'
	label = '208:Comments'
	type = 'text'
	order = 'al'
	[view:viewfields:c_notes]
	fld = 'c_notes'
	label = '8:Notes'
	type = 'text'
	order = 'az'
[report] 
  |