module (..., package.seeall)

default_action = "listdevices"

listtemplates = function( self )
	return self.model.list_templates()
end

edittemplate = function( self )
	return self.handle_form(self, self.model.get_template, self.model.update_template, self.clientdata, "Save", "Edit Template", "Template Saved")
end

createtemplate = function( self )
	return self.handle_form(self, self.model.get_template, self.model.create_template, self.clientdata, "Create", "Create Template", "Template Created")
end

deletetemplate = function( self )
	return self.handle_form(self, self.model.get_delete_template, self.model.delete_template, self.clientdata, "Delete", "Delete Template", "Template Deleted")
end

listclassgroups = function( self )
	return self.model.list_class_groups()
end

editclassgroup = function( self )
	return self.handle_form(self, self.model.get_class_group, self.model.update_class_group, self.clientdata, "Save", "Edit Class Group", "Class Group Saved")
end

createclassgroup = function( self )
	return self.handle_form(self, self.model.get_class_group, self.model.create_class_group, self.clientdata, "Create", "Create Class Group", "Parameter Class Created")
end

deleteclassgroup = function( self )
	return self.handle_form(self, self.model.get_delete_class_group, self.model.delete_class_group, self.clientdata, "Delete", "Delete Class Group", "Class Group Deleted")
end

listclasses = function( self )
	return self.model.list_classes()
end

editclass = function( self )
	return self.handle_form(self, self.model.get_class, self.model.update_class, self.clientdata, "Save", "Edit Class", "Class Saved")
end

createclass = function( self )
	return self.handle_form(self, self.model.get_class, self.model.create_class, self.clientdata, "Create", "Create Class", "Class Created")
end

deleteclass = function( self )
	return self.handle_form(self, self.model.get_delete_class, self.model.delete_class, self.clientdata, "Delete", "Delete Class", "Class Deleted")
end

getclassvalues = function( self )
	return self.handle_form(self, self.model.get_class_options, self.model.get_class_values, self.clientdata, "Fetch", "Get Device Values")
end

listgroups = function( self )
	return self.model.list_groups()
end

editgroup = function( self )
	return self.handle_form(self, self.model.get_group, self.model.update_group, self.clientdata, "Save", "Edit Parameter Group", "Parameter Group Saved")
end

creategroup = function( self )
	return self.handle_form(self, self.model.get_group, self.model.create_group, self.clientdata, "Create", "Create Parameter Group", "Parameter Group Created")
end

deletegroup = function(self )
	return self.handle_form(self, self.model.get_delete_group, self.model.delete_group, self.clientdata, "Delete", "Delete Parameter Group", "Parameter Group Deleted")
end

listparams = function( self )
	return self.model.list_params()
end

editparam = function( self )
	return self.handle_form(self, self.model.get_param, self.model.update_param, self.clientdata, "Save", "Edit Parameter", "Parameter Saved")
end

createparam = function( self )
	return self.handle_form(self, self.model.get_param, self.model.create_param, self.clientdata, "Create", "Create Parameter", "Parameter Created")
end

deleteparam = function( self )
	return self.handle_form(self, self.model.get_delete_param, self.model.delete_param, self.clientdata, "Delete", "Delete Parameter", "Parameter Deleted")
end

listdevices = function( self )
	return self.model.list_devices()
end

editdevice = function( self )
	return self.handle_form(self, self.model.get_existing_device, self.model.update_device, self.clientdata, "Save", "Edit Device", "Device Saved")
end

createdevice = function( self )
	return self.handle_form(self, self.model.get_new_device, self.model.create_device, self.clientdata, "Create", "Create Device", "Device Created")
end

duplicatedevice = function( self )
	return self.handle_form(self, self.model.get_existing_device, self.model.create_device, self.clientdata, "Duplicate", "Duplicate Device", "Duplicate Device Created")
end

deletedevice = function( self )
	return self.handle_form(self, self.model.get_delete_device, self.model.delete_device, self.clientdata, "Delete", "Delete Device", "Device Deleted")
end

editdeviceparams = function( self )
	return self.handle_form(self, self.model.get_editable_device_params, self.model.set_editable_device_params, self.clientdata, "Save", "Edit Device Parameters", "Device Parameters Saved")
end

overridedeviceparams = function( self )
	return self.handle_form(self, self.model.get_all_device_params, self.model.set_all_device_params, self.clientdata, "Save", "Override Device Parameters", "Device Parameters Saved")
end

getdevicevalues = function( self )
	return self.handle_form(self, self.model.get_search_options, self.model.fetch_device_values, self.clientdata, "Search", "Get Device Values")
end

searchdevices = function( self )
	return self.handle_form(self, self.model.get_search_options, self.model.search_device_values, self.clientdata, "Search", "Search Device Parameters")
end

editoptions = function( self )
	return self.handle_form(self, self.model.get_param_options, self.model.set_param_options, self.clientdata, "Save", "Edit Parameter Options", "Parameter Options Saved")
end

listfiles = function( self )
	return self.model.list_files()
end

editfile = function( self )
	return self.handle_form(self, self.model.get_filedetails, self.model.update_filedetails, self.clientdata, "Save", "Edit Script File", "Script File Saved")
end

dumpdatabase = function( self )
	return self.handle_form(self, self.model.get_database, self.model.dump_database, self.clientdata, "Submit", "Dump Provisioning Database")
end

getfile = function( self )
	return self.model.get_file(self.clientdata.mac, self.clientdata.ip, self.clientdata.agent)
end

putfile = function( self )
	return self.model.put_file(self.clientdata.mac, self.clientdata.data)
end

listrequests = function( self )
	return self.model.list_requests()
end

deleterequest = function( self )
	return self.handle_form(self, self.model.get_delete_request, self.model.delete_request, self.clientdata, "Delete", "Delete Request", "Request Deleted")
end

createdevicefromrequest = function( self )
	return self.handle_form(self, self.model.get_request, self.model.create_from_request, self.clientdata, "Create", "Create Device", "Device Created")
end
