module (..., package.seeall) require("controllerfunctions") default_action = "listdevices" listtemplates = function( self ) return self.model.list_templates() end edittemplate = function( self ) return controllerfunctions.handle_form(self, function() return self.model.get_template(self.clientdata.filename) end, self.model.update_template, self.clientdata, "Save", "Edit Template", "Template Saved") end createtemplate = function( self ) return controllerfunctions.handle_form(self, function() return self.model.get_template(self.clientdata.filename) end, self.model.create_template, self.clientdata, "Create", "Create Template", "Template Created") end deletetemplate = function( self ) return self:redirect_to_referrer(self.model.delete_template(self.clientdata.filename)) end listclassgroups = function( self ) return self.model.list_class_groups() end editclassgroup = function( self ) return controllerfunctions.handle_form(self, function() return self.model.get_class_group(self.clientdata.class_group_id) end, self.model.update_class_group, self.clientdata, "Save", "Edit Class Group", "Class Group Saved") end createclassgroup = function( self ) return controllerfunctions.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:redirect_to_referrer(self.model.delete_class_group(self.clientdata.class_group_id)) end listclasses = function( self ) return self.model.list_classes() end editclass = function( self ) return controllerfunctions.handle_form(self, function() return self.model.get_class(self.clientdata.class_id) end, self.model.update_class, self.clientdata, "Save", "Edit Class", "Class Saved") end createclass = function( self ) return controllerfunctions.handle_form(self, self.model.get_class, self.model.create_class, self.clientdata, "Create", "Create Class", "Class Created") end deleteclass = function( self ) return self:redirect_to_referrer(self.model.delete_class(self.clientdata.class_id)) end getclassvalues = function( self ) return controllerfunctions.handle_form(self, function() return self.model.get_class_options(self.clientdata.class_id) end, 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 controllerfunctions.handle_form(self, function() return self.model.get_group(self.clientdata.group_id) end, self.model.update_group, self.clientdata, "Save", "Edit Parameter Group", "Parameter Group Saved") end creategroup = function( self ) return controllerfunctions.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:redirect_to_referrer(self.model.delete_group(self.clientdata.group_id)) end listparams = function( self ) return self.model.list_params() end editparam = function( self ) return controllerfunctions.handle_form(self, function() return self.model.get_param(self.clientdata.param_id) end, self.model.update_param, self.clientdata, "Save", "Edit Parameter", "Parameter Saved") end createparam = function( self ) return controllerfunctions.handle_form(self, self.model.get_param, self.model.create_param, self.clientdata, "Create", "Create Parameter", "Parameter Created") end deleteparam = function( self ) return self:redirect_to_referrer(self.model.delete_param(self.clientdata.param_id)) end listdevices = function( self ) return self.model.list_devices() end editdevice = function( self ) return controllerfunctions.handle_form(self, function() return self.model.get_device(self.clientdata.device_id) end, self.model.update_device, self.clientdata, "Save", "Edit Device", "Device Saved") end createdevice = function( self ) local retval = controllerfunctions.handle_form(self, self.model.get_device, self.model.create_device, self.clientdata, "Create", "Create Device", "Device Created") if retval.value.device_id.value ~= "" and not retval.errtxt then -- Successfully created a device, redirect to edit it self:redirect("editdevice?device_id="..retval.value.device_id.value.."&redir=".. (self.clientdata.redir or "listdevices")) end return retval end duplicatedevice = function( self ) return controllerfunctions.handle_form(self, function() return self.model.get_device(self.clientdata.device_id) end, self.model.create_device, self.clientdata, "Duplicate", "Duplicate Device", "Duplicate Device Created") end deletedevice = function( self ) return self:redirect_to_referrer(self.model.delete_device(self.clientdata.device_id)) end editdeviceparams = function( self ) return controllerfunctions.handle_form(self, function() return self.model.get_editable_device_params(self.clientdata.device_id) end, self.model.set_editable_device_params, self.clientdata, "Save", "Edit Device Parameters", "Device Parameters Saved") end overridedeviceparams = function( self ) return controllerfunctions.handle_form(self, function() return self.model.get_device_params(self.clientdata.device_id) end, self.model.set_device_params, self.clientdata, "Save", "Override Device Parameters", "Device Parameters Saved") end getdevicevalues = function( self ) return controllerfunctions.handle_form(self, self.model.get_search_options, self.model.fetch_device_values, self.clientdata, "Search", "Get Device Values") end searchdevices = function( self ) return controllerfunctions.handle_form(self, self.model.get_search_options, self.model.search_device_values, self.clientdata, "Search", "Search Device Parameters") end editoptions = function( self ) return controllerfunctions.handle_form(self, function() return self.model.get_param_options(self.clientdata.param_id) end, 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 controllerfunctions.handle_form(self, function() return self.model.get_filedetails(self.clientdata.filename) end, self.model.update_filedetails, self.clientdata, "Save", "Edit Script File", "Script File Saved") end dumpdatabase = function( self ) return controllerfunctions.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:redirect_to_referrer(self.model.delete_request(self.clientdata.mac)) end createdevicefromrequest = function( self ) local retval = controllerfunctions.handle_form(self, self.model.get_request, self.model.create_from_request, self.clientdata, "Create", "Create Device", "Device Created") if retval.value.device_id and retval.value.device_id.value ~= "" and not retval.errtxt then -- Successfully created a device, redirect to edit it self:redirect("editdevice?device_id="..retval.value.device_id.value.."&redir=".. (self.clientdata.redir or "listdevices")) end return retval end