Drgcms controls

Every form can have its own control file. Methods from control file are included into CmseditController and become part of controller when controller actions are called. Control methods can be used as callbacks called before or after record load and save or as actions defined on forms. There are 6 available callbacks:

  • dc_new_record
  • dc_before_edit
  • dc_before_save
  • dc_after_save
  • dc_before_delete
  • dc_after_delete

 

 

module NoteControl

###########################################################################
# Method called when new record is created.
#
# user_id will be provided from session.
# time_begin will be initialized with current time.
###########################################################################
def dc_new_record()
  @record.user_id    = session[:user_id]
  @record.time_begin = Time.now
end

###########################################################################
# Filter will ensure that only documents belonging to current logged user
# are selected and presented to user.
###########################################################################
def notes_filter()
  user_filter_options(Note).and(user_id: session[:user_id]).order_by(created_at: -1)
end

end
 

 

dc_new_record method is called after new document is created. It can be used to initialize fields with values that can not be accessed within model definition.

 

notes_filter method is used to filter documents presented to user. Method name is defined under form result_set: filter: option. Method ensures that only documents which belong to currently logged user are presented to user. user_filter_options method mixes additional filter options defined by user with criteria defined in notes_filter.

 


Last update: 08.05.2018